2013-12-09 72 views
2

如何使用For循環將所有文件* .html複製到* .php?如何使用for循環在bash腳本中複製和重命名文件?

幫我...

這是我的腳本:

#!/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 

,或者你有其他IDE?

回答

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 renamerename --help以瞭解如何使用您的實施。有時該實用程序被稱爲rename.pl而不是簡單的rename

5
for f in *.html; do cp $f ${f%.html}.php; done 
1

如果您安裝了perl軟件包,可以省略for循環altogeather。

#!/bin/bash 
rename 's/html/php/' *.html