[問題] 檔案迴圈輸入

看板Linux作者 ( )時間12年前 (2013/12/12 19:17), 編輯推噓0(008)
留言8則, 5人參與, 最新討論串1/1
我們可以用Loop輸出, 並在script外面把stdout 轉向到檔案上: vi test.sh #!/bin/bash for i in {1..10} do echo "this is output" done chmod +x test.sh; ./test.sh >out; cat out 但我找書找來找去卻沒有方法讓script可以從一個檔案一行一行輸入並處理 假設有個檔案長這樣 #1 aa 1 2 3 bb 2 3 4 #2 dd 33 5 1 df 5 61 2 #3 fe 3 5 1 gg 64 12 12 有沒有人知道要怎麼弄一個script讓這檔案一行一行輸入處理? #!/bin/bash for (某i行檔案; i++) do line=第i行檔案內容 if (line第一個字==#); then .............. fi done -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.240.159.112

12/12 19:56, , 1F
一次讀一行可以用 read
12/12 19:56, 1F

12/12 20:05, , 2F
是能夠用read 但永遠只能read第一行
12/12 20:05, 2F

12/12 20:06, , 3F
不曉得有沒有方法能夠shift行數去read進去
12/12 20:06, 3F

12/12 20:36, , 4F
while read line; do echo "$line"; done < file
12/12 20:36, 4F

12/12 21:00, , 5F
i=0;while read -r line[${i}];do i=$(( $i + 1 ))
12/12 21:00, 5F

12/12 21:01, , 6F
done < 檔案
12/12 21:01, 6F

12/12 21:01, , 7F
echo ${line[3]} | grep -o '^.'
12/12 21:01, 7F

12/13 08:28, , 8F
for a in `cat file`
12/13 08:28, 8F
文章代碼(AID): #1IgPjYmy (Linux)