Sed命令删除所有不包含标点符号的行

时间:2016-04-21 13:37:26

标签: sed

我很难找到一个sed命令来删除文本文件中不包含标点符号(任何类型)的所有行而不手动执行每个行。

例如:

111.222.123.234
222.11.34.54
word                   # To remove
www.facebook.com
www.stackoverflow.com
another                # To remove
random@email.com

这样的命令是否存在?

1 个答案:

答案 0 :(得分:2)

您可以使用与{/ p>对应的MYCLASS transazione = new MYCLASS { ID = Guid.NewGuid(), DATA_ORA = DateTime.Now }; 字符类

[:punct:]

并否定它:

[!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~]

或者,而不是否定的匹配,直接否定字符类:

$ sed '/[[:punct:]]/!d' infile
111.222.123.234
222.11.34.54
www.facebook.com
www.stackoverflow.com
random@email.com

或者除非包含标点符号,否则不要打印任何内容:

sed '/[^[:punct:]]/d'

或者使用grep而不是sed:

sed -n '/[[:punct:]]/p'