我可以从终端快速搜索/替换多个.txt文件吗?

时间:2012-08-10 03:43:25

标签: macos bash terminal replace

我有大约100个包含纯文本的.txt文件。不知何故,一些数据已被破坏,需要找到/替换。

我需要搜索字符' - '并用长划线代替:' - '。

有没有办法在终端中使用命令快速完成此操作?

我目录中.txt文件的名称按顺序编号:1.txt,2.txt等。

谢谢!

2 个答案:

答案 0 :(得分:36)

GNU sed

sed -i 's/--/—/g' *.txt

OSX BSD sed

您需要指定备份文件扩展名。要创建扩展名为.txt.bak

的备份文件
sed -i '.bak' 's/--/—/g' *.txt

要完全替换文件,请指定一个空的扩展名:

sed -i '' 's/--/—/g' *.txt

答案 1 :(得分:3)

sed -i 's/--/–/g' *.txt应该有效。 -i的{​​{1}}标记使其适用于文件,sed代表替代,s使其替换多次出现的模式同一行。查看g的文档以获取更多信息。

编辑:这适用于GNU / Linux;事实证明,OSX上的语法略有不同(请参阅注释和接受的答案)。