从文本文件中删除所有包含反斜杠的行


8

我有一个内容如下的文件:

apple
b\all
cat
\34
egg

我想删除所有包含反斜杠的行。我尝试使用

sed '/\/d' pdataf.txt

但这没有用。我该怎么办?

Answers:


10

您只需要转义反斜杠(请转义转义!)

$ sed '/\\/d' pdataf.txt
apple
cat
egg

8

grep,打印所有没有的行\

grep -v '\\' pdataf.txt

同样地awk

awk '!/\\/' pdataf.txt

1

您需要转义反斜杠(转义字符)才能替换它。并且,如果您的sed版本支持它,则-i(就地)选项将对文件进行编辑,而无需提供中间文件。另外,如果您使用-i选项,请注意它接受一个(推荐!)备份文件扩展名,但是,如果您不提供该扩展名,则在sed命令前使用-e来通知sed您未使用它很有用。备份文件扩展名。

放在一起:

# Run sed to remove lines with backslash in them

$ sed -i -e '/\\/d' pdataf.txt

# Cat your file to confirm edits

$ cat pdataf.txt
apple
cat
egg
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.