我看過類似這樣的問題,但在這種情況下似乎沒有任何解決方案可行。我有一個文本文件,它看起來像這樣使用bash shell腳本在2個字符串之間提取字符串
START-OF-FILE
RUNDATE=20140910
FIRMNAME=dl
FILETYPE=pc
REPLYFILENAME=TEST
DERIVED=yes
PROGRAMFLAG=oneshot
SECID=ISIN
SECMASTER=yes
PROGRAMNAME=getdata
START-OF-FIELDS
ISSUER
START-OF-DATA
US345370CN85|0|4|FORD MOTOR COMPANY|FORD MOTOR COMPANY| | |
US31679BAC46|0|4|FIFTH STREET FINANCE COR|FIFTH STREET FINANCE COR| | |
END-OF-DATA
END-OF-FILE
我試圖寫一個bash shell腳本只提取「START-OF-DATA」和「END-OF-DATA」排除兩者之間的文本這些。所以輸出我要找的應該是這樣的
US345370CN85|0|4|FORD MOTOR COMPANY|FORD MOTOR COMPANY| | |
US31679BAC46|0|4|FIFTH STREET FINANCE COR|FIFTH STREET FINANCE COR| | |
到目前爲止,我寫的代碼看起來像這樣
while read line
do
name=$line
echo $name | sed -e 's/START-OF-DATA\(.*\)END-OF-DATA/\1/'
done < $1
和慶典像
./script.sh file.txt
那裏運行它script.sh是我保存的shell腳本,而file.txt是它讀取的文本文件。目前它只讀取和回顯整個文件。我猜我的語法有點傻。任何在正確的方向指針將不勝感激。 感謝
太好了。正是我在找什麼......你們很快就掉了標記我必須說:)再次感謝 – tasslebear 2014-09-11 11:47:47