2012-04-10 47 views
1

我正在嘗試編寫一個讀取文本文件並將每行保存爲字符串的腳本。我還希望腳本跳過任何以散列符號開頭的行。有什麼建議麼?通過KornShell(ksh)跳過以'#'開頭的文本文件中的行

+0

如果有一百萬條線......萬字符串將會如何? – Vijay 2012-04-10 12:10:09

+1

不,我不會追逐他們,因爲不會有一百萬行。我也說過,一個字符串,就像一個字符串。 – TomSelleck 2012-04-10 12:12:09

回答

3

您不應該忽略跳至ksh的行。例如。做到這一點:

grep -v '^#' INPUTFILE | while IFS="" read line ; do echo $line ; done 

代替作爲echo部分做任何你想要的。

或者,如果ksh不支持此語法:

grep -v '^#' INPUTFILE > tmpfile 
while IFS="" read line ; do echo $line ; done < tmpfile 
rm tmpfile 
+0

感謝您的建議,我越來越'標準輸出管道正在關閉寫錯誤'任何想法?? – TomSelleck 2012-04-10 12:16:48

+0

試過後一種解決方案,一切正常。 – TomSelleck 2012-04-10 13:19:42

2
while read -r line; do 
    [[ "$line" = *()#* ]] && continue 
    # do something with "$line" 
done < filename 

中尋找「文件名模式」或「文件名生成」在KSH手冊頁。