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

时间:2016-03-22 08:04:48

标签: linux bash command-line sed

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

  1. 查找并替换文字' google'与' facebook'在第19和第33行之间。

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

2 个答案:

答案 0 :(得分:9)

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

sed '19,33{s/google/facebook/}' file

这将在19(不包括)和33(包括)

之间的行上运行替换

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

s/google/facebook/g 

答案 1 :(得分:0)

上述答案ALMOST在Mac OSX上为我工作。

  

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

完美的表现,不用大括号。

  

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

也可以工作到文件末尾。