如何使用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。屏蔽
如果替换字符串的文本包含元字符:
^,$,.,[,则需要通过在它们前面添加反斜杠来“转义”它们:\^,\$,\.,\[