批量查找和替换的终端命令
Terminal Command for Batch Find and Replace
在过去的一个多小时里,我一直在尝试寻找如何在 Mac OS X 上的终端中进行批量查找和替换。我找到了不同版本的代码,但很难使其正常工作。到目前为止,我已经找到了一串有效的代码,但它只适用于一个 term/character.
我想做的是同时查找和替换一个文本文件中的多个字符。
例如:
Find §, replace with ก
Find Ø, replace with ด
Find ≠,
replace with ห
Find £, replace with ้
到目前为止有效的代码是(但仅适用于一个字符):
sed -i '' s/Ø/ด/ [textfile.txt]
谁能帮帮我?
您的使用模式非常普遍,因此您可以使用一个特定的实用程序,即 tr
tr abc ABC < input.txt > output.txt
您使用两个字符串(此处为 abc
和 ABC
)来指示 tr
您想要的替换(此处,将 a
替换为 A
、b
和 B
等)。
与 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
开关(逐行全局替换),而不是第二个...您的用法可能不同,但我希望您已经发现了规律,不是吗?
在过去的一个多小时里,我一直在尝试寻找如何在 Mac OS X 上的终端中进行批量查找和替换。我找到了不同版本的代码,但很难使其正常工作。到目前为止,我已经找到了一串有效的代码,但它只适用于一个 term/character.
我想做的是同时查找和替换一个文本文件中的多个字符。
例如:
Find §, replace with ก
Find Ø, replace with ด
Find ≠, replace with ห
Find £, replace with ้
到目前为止有效的代码是(但仅适用于一个字符):
sed -i '' s/Ø/ด/ [textfile.txt]
谁能帮帮我?
您的使用模式非常普遍,因此您可以使用一个特定的实用程序,即 tr
tr abc ABC < input.txt > output.txt
您使用两个字符串(此处为 abc
和 ABC
)来指示 tr
您想要的替换(此处,将 a
替换为 A
、b
和 B
等)。
与 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
开关(逐行全局替换),而不是第二个...您的用法可能不同,但我希望您已经发现了规律,不是吗?