13

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

我需要搜索字符“--”并将其替换为长破折号:“--”。

有没有办法用终端中的命令快速做到这一点?

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

谢谢!

4

2 回答 2

37

GNU sed

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

OSX BSD sed

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

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

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

sed -i '' 's/--/—/g' *.txt
于 2012-08-10T03:48:57.400 回答
3

sed -i 's/--/–/g' *.txt应该工作。使其就地作用于文件的-i标志,替代的代表,以及使其替换同一行上多次出现的模式。查看的文档以获取更多信息。sedsgsed

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

于 2012-08-10T03:48:41.513 回答