किसी कारण से mv मेरी बैश स्क्रिप्ट में ठीक से काम नहीं करता है। इस स्क्रिप्ट को रिक्त स्थान के साथ एमपी 3 फाइलों का नाम बदलना चाहिए

ls *mp3 > ls2.txt

while read line
do
        sed_name=$(echo $line | sed 's/ /_/g' | sed "s/'//g")
        mv  "'"$line"'" "'"$sed_name"'";
done < ls2.txt

rm ls2.txt

लेकिन मुझे निम्न त्रुटि मिल रही है एमवी: निर्दिष्ट लक्ष्य एक निर्देशिका नहीं है (एमवी: указанная ель не вляется каталогом)

0
Crazy_Bash 6 जिंदा 2012, 14:39
2
यह जटिल है, आप सिर्फ for i in *.mp3; do...; done क्यों नहीं करते?
 – 
fge
6 जिंदा 2012, 14:42
इस तरह आसान लगता है। मैं कोशिश करूँगा धन्यवाद
 – 
Crazy_Bash
6 जिंदा 2012, 14:55

1 उत्तर

सबसे बढ़िया उत्तर

"'"$line"'" के बजाय बस कोशिश करें

एमवी "$लाइन" "$sed_name"

1
synthesizerpatel 6 जिंदा 2012, 14:44
अजीब मैंने सोचा कि मैंने कोशिश की... लेकिन वह समस्या थी। धन्यवाद।
 – 
Crazy_Bash
6 जिंदा 2012, 14:56
इसके अलावा, इको कमांड (echo "$line") में डबल-कोट्स का उपयोग करें, या यह एक पंक्ति में एक से अधिक स्थान वाले फ़ाइल नामों के साथ समस्या होगी।
 – 
Gordon Davisson
6 जिंदा 2012, 19:21