使用sed在行范围内查找和替换文件中的文本

Sur*_*tia 6 linux bash command-line sed

我有一个大文本文件(URL.txt),我希望使用一个sed命令执行以下操作:

  1. 在第19行和第33行之间找到并将'google'替换为'facebook'.

  2. 在不更改原始文件的情况下显示终端上的输出.

and*_*lrc 13

您可以使用SED的范围选择器:

sed '19,33{s/google/facebook/}' file
Run Code Online (Sandbox Code Playgroud)

这将在19(不包括)和33(包括)之间的行上进行替换

请注意,这只会替换google每行上的第一次出现,您可以使用g-modifier来更改此行为:

s/google/facebook/g 
Run Code Online (Sandbox Code Playgroud)


Cha*_*str 5

上面的答案几乎在 Mac OSX 上对我有用。

sed '19,33s/google/facebook/' 文件

没有大括号也能完美工作。

sed '19,$s/google/facebook/' 文件

也可以工作到文件末尾。

  • 考虑链接您所指的答案,而不是引用“上述答案”,因为答案可能永远不会在您的答案之上:) (2认同)