我有一个文件,它有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