我有一個名爲db.txt的文本文件。 文件中的一些採樣行如下:Unix bash切割和grep
哈利波特與魔法石:J.K。羅琳:21.95:100:200
哈利波特與密室:J.K。羅琳:21.95:150:300
魔戒,戒指之友:J.R.R。托爾金:32.00:500:500
權力的遊戲:喬治RR馬丁:44.50:300:250
然後在我的劇本,我有以下行:
echo "Enter title:"
read TITLE
cut -d ":" -f 1 db.txt | grep -iw "$TITLE" | while read LINE
do
STRING="`echo $LINE | cut -d ":" -f 1`,"
STRING="$STRING `echo $LINE | cut -d ":" -f 2`, "
STRING=" \$$STRING`echo $LINE | cut -d ":" -f 3`,"
STRING=" $STRING`echo $LINE | cut -d ":" -f 4`,"
STRING=" $STRING`echo $LINE | cut -d ":" -f 5`"
done
是有一種方法可以從切割grep特定的字段,然後在完整的行傳遞到while循環?
例如,如果我進入了「哈利·波特」, 它應該顯示:
哈利·波特與魔法石,J.K.羅琳,$ 21.95,100,200
哈利波特與密室,J.K.羅琳,$ 21.95,150,300
shell中行上的循環是異常的。所有的命令(grep,sed,cut等等)都使用線上的循環。 – Zulu