批量查找和替换的终端命令

时间:2016-04-24 14:50:00

标签: replace find batch-processing

我一直在努力寻找如何在Mac OS X上的终端中进行批量查找和替换的时间超过过去一小时。我发现了不同版本的代码,但是很难让它工作。到目前为止,我发现了一串有效的代码,但它只适用于一个术语/字符。

我想要做的是在一个文本文件中同时查找和替换多个字符。

例如:

  

查找§,替换为ก
查找Ø,替换为ด
发现≠,   替换为ห
查找£,替换为้

到目前为止工作的代码是(但仅限于一个字符):

sed -i '' s/Ø/ด/ [textfile.txt]

有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:0)

您的使用模式非常普遍,您可以使用它的特定实用程序,即tr

tr abc ABC < input.txt > output.txt

您使用两个字符串(此处为abcABC)来指示您需要的替换tr(此处,a替换为AbB等。{/ p>

使用sed,在tr的使用方面更为通用,以搜索和替换每一行中的第一个匹配项

sed 's/src1/rep1/' < in > out

搜索并替换您在g命令中添加s开关的每一行中的每一个匹配项

sed 's/src1/rep1/g' < in > out

最终要做多次搜索并替换你必须用分号分隔s命令

sed 's/src1/rep1/g;s/src2/rep2/;s/src3/rep3/g' < in > out

请注意,在上面的示例中,我使用g开关(逐行全局替换)进行第1和第3次查找和替换,而不是第2次...您的使用可能会有所不同,但我希望你发现这种模式,不是吗?