Awk 如何用前导空格替换sed中的多行字符串
我有一个文件,上面有这样的行Awk 如何用前导空格替换sed中的多行字符串,awk,sed,Awk,Sed,我有一个文件,上面有这样的行 something ----------- 在某物之后有一个前导和尾随空格。我想把它换成 other ------- 并保留前导和尾随空间。如何?sed可以使用逗号分隔的正则表达式集匹配多行。并用c命令替换范围内的所有内容。要使c命令不忽略前导空格,请在其后面使用反斜杠。e、 g sed -i.original '/^ something $/,/-----------$/c\ other \n-------' input-filename sed可以
something
-----------
在某物之后有一个前导和尾随空格。我想把它换成
other
-------
并保留前导和尾随空间。如何?sed
可以使用逗号分隔的正则表达式集匹配多行。并用c
命令替换范围内的所有内容。要使c
命令不忽略前导空格,请在其后面使用反斜杠。e、 g
sed -i.original '/^ something $/,/-----------$/c\ other \n-------' input-filename
sed
可以使用逗号分隔的正则表达式集匹配多行。并用c
命令替换范围内的所有内容。要使c
命令不忽略前导空格,请在其后面使用反斜杠。e、 g
sed -i.original '/^ something $/,/-----------$/c\ other \n-------' input-filename
这可能适用于您(GNU-sed):
在开始标记和结束标记之间收集行,然后用替换字符串替换所需的字符串
注意:使用M
标志在多行中进行精确匹配。这可能适用于您(GNU-sed):
在开始标记和结束标记之间收集行,然后用替换字符串替换所需的字符串
注意:使用M
标志在多行中进行精确匹配。sed用于单个行上的简单替换,这就是全部内容,对于任何其他您应该使用awk的内容:
$ awk 'n{$0=substr($0,1,n); n=0} {sub(/^ something $/," other "); n=length()}1' file
other
-------
这将适用于任何UNIX设备上任何shell中的任何awk。sed用于在单个行上进行简单替换,这就是全部内容,对于其他任何您应该使用awk的内容:
$ awk 'n{$0=substr($0,1,n); n=0} {sub(/^ something $/," other "); n=length()}1' file
other
-------
这将适用于任何UNIX机器上任何shell中的任何awk