मैं निम्नलिखित बैश कोड है जो एक पाठ फ़ाइल के माध्यम से लूप होता है, लाइन द्वारा लाइन .. im प्रत्येक पंक्ति के लिए काम 'उपसर्ग' उपसर्ग की कोशिश कर रहा, लेकिन इसके बजाय इस त्रुटि हो रही है है:मैं फ़ाइल में प्रत्येक पंक्ति की शुरुआत में एक स्ट्रिंग कैसे प्रीपेड कर सकता हूं?
[email protected]:~/Desktop$ ./appendToFile.sh stusers.txt kp
stusers.txt
kp
./appendToFile.sh: line 11: /bin/sed: Argument list too long
[email protected],passw0rd
यह बैश है लिपि ..
#!/bin/bash
file=$1
string=$2
echo "$file"
echo "$string"
for line in `cat $file`
do
sed -e 's/^/prefix/' $line
echo "$line"
done < $file
मैं यहां क्या गलत कर रहा हूं?
अद्यतन: फाइल पर सिर का प्रदर्शन टर्मिनल की एक पंक्ति पर सभी लाइनों को डंप करता है, शायद संबंधित है?
[email protected]:~/Desktop$ head stusers.txt
[email protected]:~/Desktop$ ouse.com,passw0rd
में उत्पादन को बचाने के लिए चाहते हैं, तो आप शायद फ़ाइल में अमान्य पंक्ति अंत है। शायद आप चाहते हैं कि 'dos2unix' –
@WilliamPursell मैंने फ़ाइल के खिलाफ dos2unix चलाने की कोशिश की लेकिन मेरे लिए नई लाइनें नहीं डालीं, सबसे आसान समाधान फ़ाइल फ़ाइल को एक नई फ़ाइल में कॉपी किया गया था – bobbyrne01