终端新手在这里。我有一个包含许多不同字符串的长文本文件。我需要将所有这些更改为短代码,如下所示:
string 1
应更改为ABC
string 2
应更改为LMN
string 3
应更改为XYZ
等等。我知道如何使用基本sed
命令一次更改其中一个。我知道我可以将一个sed
命令传递给另一个命令。但是,我需要大约1000个字符串更改。当然,有比1000管道更好的方法吗?
谢谢!
答案 0 :(得分:0)
一种方法是使用多个s
命令和sed:
sed -e 's|string 1|ABC|' -e 's|string 2|LMN|' -e 's|string 3|XYZ|' your_file
或用分号分隔:
sed -e 's|string 1|ABC|; s|string 2|LMN|; s|string 3|XYZ|' your_file
答案 1 :(得分:0)
虽然大多数人只使用sed作为单行',但sed是一种(限制用途的)脚本语言,可用于更复杂的东西。因此,它允许您将sed命令作为文件的输入。你想要做的是创建一个每行有一个sed命令的文件,如下所示:
s/string 1/ABC/g
s/string 2/LMN/g
s/string 3/XYZ/g
然后将其保存到文件中,例如' shortCodes.sed'
然后,在命令行中,您说
sed -f shortCodes.sed< inputfile> OUTPUTFILE
注意:模式匹配结束时的/g
指定全局'替换:这样,如果同一个字符串在一行中出现多次,则每次都会替换它 - 根据您的应用程序,您可能会也可能不想这样做。