如何使用sed程序用某些内容替换几行连续的内容?
例子:
строка
строка1
строка2
строка3
строка4
строка5
您需要将三行 - строка1
, строка2
, строка3
, 替换заменяющий текст
为:
строка
заменяющий текст
строка4
строка5
如何使用sed程序用某些内容替换几行连续的内容?
例子:
строка
строка1
строка2
строка3
строка4
строка5
您需要将三行 - строка1
, строка2
, строка3
, 替换заменяющий текст
为:
строка
заменяющий текст
строка4
строка5
总体方案是:
首先,您需要从指定列表中找到第一行并用它执行特定的命令块:
命令块必须首先在模式空间中放置来自输入流的所需行数。这是由团队完成的
N
。在这种情况下,我们需要再获取两行,这意味着我们需要两个命令:执行后,模式空间将包含以下(在本例中)文本(每个命令向模式空间
N
添加一个换行符,然后是输入流的下一行):\n
这正是需要用作命令
s
(substitute
) 第一个参数的文本。第二个参数将是应该作为替换的文本 (s/первый параметр/второй параметр/
):顺便说一句:如果参数中有一个字符
/
(我们选择它作为命令参数分隔符s
),那么您需要:\/
或者用反斜杠 ( ) “转义”每个这样的字符s,первый параметр,второй параметр,
最终命令将如下所示:
需要替换四行的情况的示例 -
строка1
,строка2
,строка3
,строка4
:可以看到,增加了一个命令,命令
N
的第一个参数稍微加长了s
。屏蔽
如果替换字符串的文本包含元字符:
^
,$
,.
,[
,则需要通过在它们前面添加反斜杠来“转义”它们:\^
,\$
,\.
,\[