2010-10-27 13 views
14

हाल ही में मैं निम्नलिखित ग्रेप आदेश में आए:स्क्रिप्ट फ़ाइल से स्क्रिप्ट को कैसे पढ़ा जाए?

/usr/xpg4/bin/grep -Ff grep.txt input.txt > output.txt 

जो मेरी समझ के अनुसार इसका मतलब है कि input.txt से, बात grep.txt और आउटपुट यह output.txt करने में निहित grep।

मैं sed के लिए कुछ ऐसा करना चाहता हूं यानी मैं sed आदेश को एक अलग फ़ाइल में रखना चाहता हूं (sed.txt कहें) और उन्हें इनपुट फ़ाइल (input.txt कहें) पर लागू करना चाहते हैं और आउटपुट फ़ाइल बनाना चाहते हैं (output.txt कहें)।

/usr/xpg4/bin/sed -f sed.txt input.txt > output.txt 

यह काम नहीं करता है और मैं निम्नलिखित त्रुटि मिलती है:

sed: command garbled 

ऊपर उल्लेख किया फ़ाइलों की सामग्री के रूप में नीचे हैं:

sed.txt

मैं निम्नलिखित की कोशिश की

sed s/234/acn/ input.txt 
sed s/78gt/hit/ input.txt 

input.txt

234GH 
5234BTW 
89er 
678tfg 
234 
234YT 
tfg456 
wert 
78gt 
gh23444 

कृपया सलाह दें।

उत्तर

30

आपके sed.txt में केवल sed कमांड शामिल होना चाहिए: sed के साथ कोई उपसर्ग नहीं है या इनपुट फ़ाइल के साथ प्रत्यय नहीं है। आपके मामले में यह शायद होना चाहिए:

# sed.txt 
s/234/acn/ 
s/78gt/hit/ 

जब अपने इनपुट पर भाग गया:

$ /usr/xpg4/bin/sed -f sed.txt input.txt 
 
acnGH 
5acnBTW 
89er 
678tfg 
acn 
acnYT 
tfg456 
wert 
hit 
ghacn44 
12

बल्कि एक अलग पाठ फ़ाइल में sed आदेशों रखने से, आप एक बनाने की कोशिश करना चाहते हो सकता है sed स्क्रिप्ट। फ़ाइल नीचे अपना डेटा फ़ाइलों पर सीधे चला सकते हैं:

./myscript.sed inputfile.txt> outputfile.txt

#!/bin/sed -f 
s/234/acn/ 
s/78gt/hit/ 
संबंधित मुद्दे