Sed不匹配反斜杠文字还是我做错了什么?



我有一个文件,它有3行:

%fddfdffd
%dffdfd
hello %12345678

我需要删除"%"字符(包括"%"字符),但如果"%"以""开头

我试过了,但是没有成功:

sed -i "s/[^\]%.*//g"

这个任务实际上是在一个latex文件上工作,使用sed删除注释。

使用sed后的文件应该是:

%dffdfd
hello 

我建议有三种情况:

sed '/^%/d; /\%/b; s/%.*//' file

输出:

<>以前 % dffdfdhello

参见:man sed

这可能适合您(GNU sed):

sed -E 's/(^|[^])%.*/1/' file

如果该行以%开头或%后跟除以外的任何字符,则删除该行其余部分。

如果结果该行为空并且也要删除,则使用:

sed -E '/^%/d;s/([^])%.*/1/' file

最新更新