如何使用For循环将所有文件* .html复制到* .php?
帮帮我......
这是我的剧本:
#!/bin/bash
list="$(ls *.html)"
for i in "$list"
do
newname=$(ls "$i" | sed -e 's/html/php/')
cat beginfile > "$newname"
cat "$i" | sed -e '1,26d' | tac | sed -e '1,21d' | tac >> "$newname"
cat endfiel >> "$newname"
done
或者你有另一个想法?
答案 0 :(得分:5)
for f in *.html; do cp $f ${f%.html}.php; done
答案 1 :(得分:3)
你走了:
for i in *.html; do mv "$i" "${i%.html}.php"; done
在RedHat Linux和衍生产品中,有一个rename
实用程序可将其简化为:
rename .html .php *.html
在Debian Linux和衍生产品中,有一个rename
实用程序可以将其简化为:
rename 's/.html$/.php/' *.html
检查man rename
或rename --help
,了解如何使用您拥有的实施方案。有时,该实用程序称为rename.pl
,而不仅仅是rename
。
答案 2 :(得分:1)
如果安装了perl软件包,可以省略for循环altogeather。
#!/bin/bash
rename 's/html/php/' *.html