我有一个需要一些更改的大文本文件。为此,我需要首先找到具有特定公共字符串的行,然后直接编辑该行。例如,如果我运行这个grep
命令:
# grep -A1 important_string gianttextfile.txt
important_string
change_this
我想先定位important_string
,然后change_this
在整个文档中多次修改为其他内容。我不能只修改所有change_this
条目,因为它们中的许多条目需要保持原样,我需要更改的只是这个特定字符串后面的条目。
实现这一目标的最佳方法是什么?
笔记:
记住
important_string
并被change_this
解析为正则表达式。s
执行的任何行都没有经过测试important_string
,因此它不能触发s
下一行。这意味着这样的片段:不会改变。始终测试的变体
important_string
是如果
s
可以使important_string
出现或消失,那么您可能需要important_string
在替换之前和/或替换之后进行测试;或不测试是否s
成功替换。这个答案并不涵盖所有这些情况。s/…/…/g
需要时使用。sed -i … file
需要时使用。