【发布时间】:2018-12-17 04:39:54
【问题描述】:
我有一个测试文件,该文件中有大约 20K 行我想更改特定行中的一些特定字符串我正在获取要更改的行号和字符串。这里我有一个场景,我想将一个字符串更改为另一个在多行。我之前用过像
sed -i '12s/stringone/stringtwo/g' filename
但在这种情况下,我必须为相同的测试运行多个命令,例如
sed -i '15s/stringone/stringtwo/g' filename
sed -i '102s/stringone/stringtwo/g' filename
sed -i '11232s/stringone/stringtwo/g' filename
比我在下面尝试过的
sed -i '12,15,102,11232/stringone/stringtwo/g' filename
但我得到了错误
sed: -e expression #1, char 5: unknown command: `,'
请有人帮助我实现这一目标。
【问题讨论】:
-
sed 无法使用文字字符串进行操作(请参阅stackoverflow.com/q/29613304/1745001),因此如果您真的想这样做,那么您使用了错误的工具。 edit 您的问题包括简洁、可测试的样本输入和预期输出,并确保包括正则表达式和反向引用元字符(如果可能出现)。