我已经下载了一个视频播放列表,并且想要使用名为android播放列表的文件来组织它们。例如:第一个标题为“Android.mp4简介”的文件,我必须将它重命名为1.mp4。我不知道Perl或UNIX,但我设法到目前为止编写代码:使用shell脚本重命名文件夹中的文件
`IFS=''
c=0
d=0
e=1
while read line
do
d=`expr $c % 4`
if [ $d == 0 ]
then
echo $line
rename -n `s/${line}.mp4/${e}.mp4/` *.mp4
e=`expr $e + 1`
fi
c=`expr $c + 1`
done < Android\ playlist`
但这给错误:
Bareword found where operator expected at (eval 1) line 1, near "3rd"
(Missing operator before rd?)
syntax error at (eval 1) line 1, near "3rd Party "
LocationEntry Solution - Developing Android Apps
ren.sh: line 11: s/LocationEntry Solution - Developing Android Apps.mp4$/243.mp4/: No such file or directory
Bareword found where operator expected at (eval 1) line 1, near "3rd"
(Missing operator before rd?)
syntax error at (eval 1) line 1, near "3rd Party "
SQLiteOpenHelper onUpgrade() method - Developing Android Apps
ren.sh: line 11: s/SQLiteOpenHelper onUpgrade() method - Developing Android Apps.mp4$/244.mp4/: No such file or directory
Bareword found where operator expected at (eval 1) line 1, near "3rd"
(Missing operator before rd?)
syntax error at (eval 1) line 1, near "3rd Party "
JUnit testing - Developing Android Apps
ren.sh: line 11: s/JUnit testing - Developing Android Apps.mp4$/245.mp4/: No such file or directory
Bareword found where operator expected at (eval 1) line 1, near "3rd"
(Missing operator before rd?)
syntax error at (eval 1) line 1, near "3rd Party "
InsertReadDbTest - Developing Android Apps
ren.sh: line 11: s/InsertReadDbTest - Developing Android Apps.mp4$/246.mp4/: No such file or directory
Bareword found where operator expected at (eval 1) line 1, near "3rd"
(Missing operator before rd?)
syntax error at (eval 1) line 1, near "3rd Party "
InsertReadDbTest Solution - Developing Android Apps
ren.sh: line 11: s/InsertReadDbTest Solution - Developing Android Apps.mp4$/247.mp4/: No such file or directory
Bareword found where operator expected at (eval 1) line 1, near "3rd"
(Missing operator before rd?)
syntax error at (eval 1) line 1, near "3rd Party "
Simplify Tests - Developing Android Apps
ren.sh: line 11: s/Simplify Tests - Developing Android Apps.mp4$/248.mp4/: No such file or directory
请帮助我。谢谢!
尝试使用双引号,而不是反引号这个:'重命名-n “S/$ {}行的.mp4/$ {E} .MP4 /” * .mp4' – tivn
为什么问题是perl标签? –
因为重命名使用Perl表达式和双引号不起作用! –