使用 SED 命令删除多次出现的情况

使用 SED 命令删除多次出现的情况

我们需要删除所有后面没有引号的 /t 字符

sed 's/\\t\([^"]\)/foo\1/g' 

这个命令对于单次出现效果很好。我们需要添加什么选项来删除多次出现(连续出现)

前任 :abc/t/tdef

上面的命令给出了abc /tdef,但我们正在寻找abc def

答案1

像这样:

$ cat file
abc/t/tdef
abc/t"/tdef

$ perl -pe 's|/t(?!")| |g' file
abc  def
abc/t" def

该部分(?!")是一个消极展望高级正则表达式技术,sed不知道这一点

答案2

使用sed

$ sed -E 's~(/t")?(/t)+~\1 ~' file
abc def

相关内容