[問題] Shell Script 中從 pipe 建立陣列變數的方法?

看板Linux作者 (惡水上的大橋)時間16年前 (2009/09/04 23:40), 編輯推噓2(2014)
留言16則, 3人參與, 最新討論串1/2 (看更多)
我的需求環境是在某個目錄內有許多不同日期建立的檔案 而我下指令 ls -l | awk '{print $6}' | uniq 是可以抓出目錄底下的有哪些日期 但是我要如何把這些原本輸出到螢幕的不同日期,存到某個 shell script 的陣列變數? 因為之後我想要透過這個變數分別建立以日期為名的目錄。 read 似乎有個參數 -a 不知道是不是在這種狀況下使用?我對於這種輸出入還不熟悉 還請眾前輩指點,謝謝。 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 58.114.201.3

09/04 23:46, , 1F
用 find 搭配就可以了, 不一定須要 陣列吧
09/04 23:46, 1F

09/04 23:49, , 2F
詳細的語法要怎麼寫呢?還請您示範一下,謝謝。
09/04 23:49, 2F

09/05 00:21, , 3F
uniq要前要先sort 然後 mkdir `ls -l .... ` 就可行了
09/05 00:21, 3F

09/05 00:33, , 4F
感謝您的回應 ;) 不用 post ? 印象中這個板建議回文...
09/05 00:33, 4F

09/05 00:53, , 5F
經實驗...不加 sort 也可行...只是如何把那些東西倒入陣
09/05 00:53, 5F

09/05 00:54, , 6F
列變數還是摸索中...因為之後還想做別的處理
09/05 00:54, 6F

09/05 01:22, , 7F
除非ls -lt有照時間排序 要不然mkdir會有很多err msg
09/05 01:22, 7F

09/05 01:41, , 8F
uniq 會把同樣的東西去除掉所以架設目錄夾底下有一百個檔
09/05 01:41, 8F

09/05 01:42, , 9F
案,但是如果說建立日期都一樣,經過 uniq 之後只會出現一
09/05 01:42, 9F

09/05 01:42, , 10F
次...
09/05 01:42, 10F

09/05 01:48, , 11F
最簡單的測試方法 開一個空目錄夾下以下指令
09/05 01:48, 11F

09/05 01:48, , 12F
touch foo;touch foo2;ls -l | awk '{print $6}' | uniq
09/05 01:48, 12F

09/05 01:49, , 13F
然後 ls -l 確實會看到 foo 跟 foo2 兩個檔案...
09/05 01:49, 13F

09/05 01:49, , 14F
但是當初 ls -l | awk '{print $6}' | uniq 只會有一個
09/05 01:49, 14F

09/05 01:59, , 15F
我錯了 (-w-;;; 上面幾行當我亂講...因為我的資料太單純
09/05 01:59, 15F

09/05 02:00, , 16F
如果資料種類多還是要排過再用 uniq ... 不然會出事...
09/05 02:00, 16F
文章代碼(AID): #1AeJJpaX (Linux)
文章代碼(AID): #1AeJJpaX (Linux)