我有一个我需要处理的文件
##PAT1##
#xxxdx
#ddddvdvc
##PAT2##
#dsfcdsfd
#dsfwf
如果我传递模式模式,我想删除前导#
字符。因此,如果我通过##PAT1##
我想从接下来的2行中移除#
(直到下一个模式) - 在模式之后总是2行。我尝试使用sed
但没有成功。
由于
答案 0 :(得分:2)
使用GNU版sed
的一种方式:
infile
的内容:
"##PAT1##"
"#xxxdx"
"#ddddvdvc"
"##PAT2##"
"#dsfcdsfd"
"#dsfwf"
命令:
sed '/^"##PAT1##"/,+2 s/^\("\)#\([^#]\)/\1\2/' infile
输出:
"##PAT1##"
"xxxdx"
"ddddvdvc"
"##PAT2##"
"#dsfcdsfd"
"#dsfwf"
答案 1 :(得分:1)
这可能对您有用:
sed '/^"##PAT1##/{$!N;$!N;s/#//5g}' file
"##PAT1##"
"xxxdx"
"ddddvdvc"
"##PAT2##"
"#dsfcdsfd"
"#dsfwf