首页 > 解决方案 > 如何使用 sed 循环文件并将输出保存在不同的文件中?

问题描述

我有两个不同的文件 A.txt 和 B.txt 都包含相同的字符串。我想使用sed命令来替换字符串,但我不想覆盖 A.txt 和 B.txt。

实际上我想遍历文件,然后为两者做这样的事情:

sed 's/myString/myNewString/g' A.txt > updatedA.txt

我可以使用什么技巧来以这种方式将输出重定向到我想要的尽可能多的文件?假设我有 x *.txt 文件。

谢谢。

标签: linuxbashshellsedcommand

解决方案


for对当前目录中的所有 .txt 文件进行循环:

for file in *.txt; do
  sed 's/myString/myNewString/g' "$file" > "updated$file"
done

每个目录仅使用此脚本一次。


推荐阅读