使用sed,您可以轻松更改多个文件中的文本,例如:
sed -i 's/cashtestUS/cheque_usd/g' *.xml
Run Code Online (Sandbox Code Playgroud)
问题是,这具有巨大的力量,复杂的正则表达式很容易产生无法预料的后果.
有没有一种简单的方法可以做到:
1)回应所做的更改
2)在预览模式下运行sed,以便可以预览潜在的更改
Jon*_*ler 12
在预览模式下运行,不带-i:
sed -e 's/cashtestUS/cheque_usd/g' *.xml
Run Code Online (Sandbox Code Playgroud)
(这-e不是必需的;它只是说下一个参数是sed脚本,或脚本的一部分sed.)这会将所有输出写入标准输出.您可能会通过less(或more)传递它,或者通过它grep来查看更改的行是您期望的那些.或者您可以一次处理一个文件并运行差异:
for file in *.xml
do
echo "$file"
sed -e 's/cashtestUS/cheque_usd/g' "$file" | diff -u "$file" -
done
Run Code Online (Sandbox Code Playgroud)
要么 …