我有很多名为12345.html,12346.html等的html文件。我需要将“style.css”更改为“style-12345.css”或相应的文件名。我不确定使用什么工具,建议?
答案 0 :(得分:3)
使用for循环和sed非常容易完成:
for i in *.html; do
sed -i "s/style\\.css/style-`basename $i .html`.css/g" $i
done
循环运行内部命令,并将$i
设置为每个.html文件名。 sed -i
修改文件。 basename $i .html
获取$i
后没有.html
后缀(即只是数字)
答案 1 :(得分:1)
查找名为rename
的命令。它有两种,具体取决于实施情况。
perl
包提供/usr/bin/prename
,它使用perl样式的正则表达式来重命名文件。例如,这个命令
$ prename 's/foo/bar/ *foo*
会在包含'foo'的每个文件名中将'foo'更改为'bar'。
util-linux
包提供/usr/bin/rename
,它使用简单的字符串替换来重命名文件。例如,这个命令
$ rename foo bar *foo*
与第一个效果相同。
prename
比常规rename
强大得多,但这种力量意味着使用起来比较棘手。
答案 2 :(得分:0)
perl -pi -e 's/style.css/style-12345.css/g' *.html