[問題] 如何讓Bash取出特定序數?
ls後有一堆長這樣子的檔案:
foo_001_bar
foo_002_bar
foo_004_bar
foo_005_bar
foo_007_bar
...
(注意序數不一定連續)
我想要像是指定[0-9]{3}的方法單獨取出「數字」,而不包括檔名中其他的東西;然後輸
出到$FILE_SERIAL陣列中:
001
002
004
005
007
...
原本想試試看用sed或awk做(我不知道方向有沒有錯誤...我是Shell Script初學者...),
但Google看了很久還是不知道該如何只取出數字。
謝謝。
--
推
04/08 21:32,
04/08 21:32
推
04/08 21:34,
04/08 21:34
推
04/08 21:35,
04/08 21:35
→
04/08 21:35,
04/08 21:35
→
04/08 21:35,
04/08 21:35
推
04/08 21:38,
04/08 21:38
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.166.221.57
→
08/19 14:24, , 1F
08/19 14:24, 1F
→
08/19 14:26, , 2F
08/19 14:26, 2F
→
08/19 14:27, , 3F
08/19 14:27, 3F
→
08/19 14:28, , 4F
08/19 14:28, 4F
→
08/19 14:33, , 5F
08/19 14:33, 5F
→
08/19 15:30, , 6F
08/19 15:30, 6F
→
08/19 16:23, , 7F
08/19 16:23, 7F
我是往那個方向想沒錯,但不知要如何單獨抽出一堆檔名中的01 02這種序數而不是一整行
。
→
08/19 17:33, , 8F
08/19 17:33, 8F
沒啥太大不同,只是底線比較多,但每個檔名中只有唯一的二位數字。長得可能像:
output_AUG_03_b
或是
output.a.[03]
之類,不過當這種情形發生時我會自己再改一下Script在用,所以沒關係(自用而已),只
要知道如何抽這種數字就好。謝謝。
→
08/19 18:05, , 9F
08/19 18:05, 9F
目前這個好像夠了,謝謝。不過以後如果檔名裡還有其他數字的話我還是希望可以用RegEx
感謝qsort的解答:
grep -o "[0-9]\+"
※ 編輯: kuan 來自: 118.166.213.238 (08/23 01:21)