我正在使用命令
perl -pe 's/ReplaceThis/`cat T1.php`/ge' -i T1.php.txt
将文件T1.php.txt中的字符串“ReplaceThis”替换为文件T1.php的内容,并且工作正常。但我想一次为数百个文件执行此操作,Ti.php为1< = i< = 700。我正在尝试
for file in *.php; do perl -pe 's/ReplaceThis/`cat "$file"`/ge' -i
"$file".txt ; done
但我收到错误:
cat ::没有这样的文件或目录
我怎样才能让它发挥作用?
答案 0 :(得分:2)
不要尝试从shell脚本生成Perl代码!使用其他方法(args,env,fd,file)将信息传递给脚本。
一个解决方案:
for file in *.php; do
perl -i -pe'
BEGIN { local $/; $repl = <STDIN>; }
s/ReplaceThis/$repl/g;
' "$file".txt <"$file"
done