5

我运行了一个 perl 脚本使用

perl -p -i.bak -e "..." *.sh dir/*.sh

这创建了每个文件的副本,例如

script.sh
script.sh.bak

我现在想从.bak文件中恢复。我怎样才能轻松做到这一点?

4

3 回答 3

7
for file in *.sh.bak dir/*.sh.bak; do cp "$file" "${file//.bak}"; done

或者您可以使用mv而不是cp.

于 2012-05-29T08:01:07.467 回答
2

find -name '*.bak'|sed 's:.bak$::'|xargs -n 1 -I % cp %.bak %

于 2012-05-29T08:20:11.833 回答
0

感谢您的修复。

我一直在使用下面的代码组合来修复 Joomla 站点中的“eval(base64_decode”)。

查找: grep -lr --include=*.php "eval(base64_decode" ./

删除: grep -lr --include=.php "eval(base64_decode" ./ | xargs sed -i.bak 's/eval(base64_decode[^;];/\n/g'

撤消:find -name '*.bak'|sed 's:.bak$::'|xargs -n 1 -I % cp %.bak %

于 2013-08-03T13:21:23.530 回答