我需要在一些php脚本中替换几个文本块...
我有:find . -name 'products.php' -exec grep --silent 'TEXT_TO_FIND' {} \; -exec ls {} \; -exec sed -i 's/TEXT_TO_FIND/REPLACE_TEXT/g' {} \;
这项工作,但我有大约2 ou 3行的文字..
所以我记得用我的查找文本创建一个find.txt,用替换文本创建另一个replace.txt ..
我的问题是...... 如何在上述命令中将此文件用作输入..
类似的东西:
find . -name 'products.php' -exec grep --silent `cat find.txt` ...
祝你好运 布鲁诺
答案 0 :(得分:0)
你可能不得不采用比pure-bash / coreutils更面向数据的东西。如果您可以访问您网站上的Python:
#!/bin/python
with open("find.txt","r") as f:
fs = f.read().trim("r")
with open("replace.txt","r") as f:
rs = f.read().trim()
# you probably have to loop other the following lines
# Once for every file:
with open("src.txt","r") as f:
src = f.read()
modified = src.replace(fs,rs)
if modified := src:
with open("src.txt","w") as f:
f.write(modified)
这只是一个起点。你可能需要改进它。如果你被困在某事上,请随意提出另一个问题!
以下是我测试的成绩单:
sh$ cat src.txt
AAA
BBB
CCC
DDD
CCC
DDD
EEE
FFF
sh$ cat find.txt
CCC
DDD
EEE
sh$ cat replace.txt
XXX
YYY
ZZZ
sh$ python m.py
sh$ cat src.txt
AAA
BBB
CCC
DDD
XXX
YYY
ZZZ
FFF