Tôi có tệp văn bản có tên db.txt. Một số dòng mẫu từ tệp đi như vậy:Cắt bash Unix và grep
Harry Potter và đá phù thủy: J.K. Rowling: 21.95: 100: 200
Harry Potter và Phòng chứa bí mật: J.K. Rowling: 21.95: 150: 300
Chúa tể của những chiếc nhẫn, Học bổng nhẫn: J.R.R. Tolkien: 32,00: 500: 500
A Game of Thrones: George RR Martin: 44.50: 300: 250
Sau đó, trong kịch bản của tôi, tôi có những dòng sau:
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
Is có một cách để grep một lĩnh vực cụ thể từ cắt và sau đó vượt qua trong dòng đầy đủ vào vòng lặp while?
Ví dụ, nếu tôi bước vào "Harry Potter", nó sẽ hiển thị:
Harry Potter và Hòn đá phù thủy, J.K. Rowling, $ 21,95, 100, 200
Harry Potter và Phòng chứa bí mật, J.K. Rowling, $ 21,95, 150, 300
Một vòng lặp trên các dòng trong trình bao là không bình thường. Tất cả các lệnh (grep, sed, cut, etc ...) đều sử dụng một vòng lặp trên các dòng. – Zulu