मेरे पास db.txt नामक एक टेक्स्ट फ़ाइल है। फ़ाइल से कुछ नमूना पंक्तियां इस तरह के रूप में चला जाता है:यूनिक्स बैश काटने और grep
तब मेरी स्क्रिप्ट मेंहैरी पॉटर और जादूगर का पत्थर: J.K। राउलिंग: 21.95: 100: 200
हैरी पॉटर एंड द चैंबर ऑफ सीक्रेट्स: J.K। राउलिंग: 21.95: 150: 300
लोर्ड ऑफ द रिंग्स, अंगूठी की फैलोशिप: J.R.R। टोल्किन: 32.00: 500: 500
सिंहासन का एक खेल: जॉर्ज आर आर मार्टिन: 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 करने के लिए एक तरीका है और फिर पूर्ण लूप में जबकि लूप में पास?
उदाहरण के लिए, अगर मैं "हैरी पॉटर", में प्रवेश किया यह प्रदर्शित करना चाहिए:
हैरी पॉटर और जादूगर स्टोन, जे.के. राउलिंग, $ 21.95, 100, 200
हैरी पॉटर एंड द चैंबर ऑफ सीक्रेट्स, जे.के. राउलिंग, $ 21.95, 150, 300
खोल में तर्ज पर एक पाश anormal है। सभी आदेश (grep, sed, cut, आदि ...) लाइनों पर पहले से ही एक लूप का उपयोग करें। – Zulu