我想删除任何包含$
后跟字符的行,例如:
a$df
aheh$b$
t$$a
我希望保留包含一 $
,在行尾:
abc$
abcdwh$
该文本文件包含 2M 行。
答案1
$
中的元字符通过sed
两种方式进行字面匹配:
- 要么我们反斜杠它
\$
要么 - 将其括在方括号中
[$]
但还有另一种方法,如果$
不是正则表达式中的最后一个字符,则将其视为文字。所以下面的
sed -e '/$./d' file
是为您的问题量身定做的。
答案2
$
如果某行后面包含任何内容 ( .
),则删除该行:
sed '/\$./d' file
此模式也适用于grep
:
grep -v '\$.' file