我想从以%%
但不是%%%
开头的文件中提取所有行。想象一下foo.txt
有这样的台词(和其他人)。然后
awk '/^%%[^%]/ { printf "%s\n", $0 }' foo.txt
包含以%%...
开头的行,它省略了以%%%...
开头的行,但它也省略了包含%%
的行 (应该包括在内)。怎么能匹配?我试图明确地将该行的'rest'与'。*'匹配,但这不起作用。
答案 0 :(得分:2)
在第二个百分比之后匹配行尾。
尝试:
awk '/^%%([^%]|$)/ { printf "%s\n", $0 }' foo.txt
证明:
$ cat foo.txt
%% YES
%%% NO
%%
123
$ awk '/^%%([^%]|$)/ { printf "%s\n", $0 }' foo.txt
%% YES
%%
$