我想替换所有文件中所有出现1800 102 6022
的。1860 266 2666
我在不同的目录中有不同的文件,其中可以包含1800 102 6022
.
我在用:
perl -pi.13.04.2016 -w -e "s/\b1800 102 6022\b/1860 266 2666/g;" /*.jsp
适用于单个文件夹。我想在父目录中运行它并将其应用于所有文件。
答案1
使用 find 命令来做到这一点,
find /xxx -name '*.jsp' -exec perl -pi.13.04.2016 -w -e "s/\b1800 102 6022\b/1860 266 2666/g;" {} \;
答案2
有多种方法可以做到这一点:
使用
find
:find . -type f -name "*.jsp" \ -exec perl -pi.13.04.2016 -w -e "s/\b1800 102 6022\b/1860 266 2666/g;" {} \;
如果您正在使用
bash
,请使用extglob
:shopt -s globstar perl -pi.13.04.2016 -w -e "s/\b1800 102 6022\b/1860 266 2666/g;" **/*jsp
在 Perl 中完成整个事情,迭代目录中的文件,但这并不值得在这里付出努力。