从文本文件中删除行

时间:2019-10-19 09:01:30

标签: file unix sed line

我正在尝试删除仅少于2个单词的行。 我的文本文件就是这样

1.just be patient.
2.posters?
3.I have got two jobs, but they're not for you.
4.what?
5.I am.

哪个应该给我输出...

1.just be patient.
2.I have got two jobs, but they're not for you.

外面有人可以建议我最好的方法吗? (使用sed或类似的东西)

预先感谢

2 个答案:

答案 0 :(得分:1)

使用awk应该很容易,以防万一。

awk 'NF>2' Input_file

说明:

  • 如果NF>2(字段数,NF中的默认变量)的值大于awk,则在2处检查条件。

  • awk默认情况下以空格作为定界符,因此根据OP,它应该超过2个字,因此根据>2条件来定。

  • 现在介绍了如何打印满足条件的行? awk适用于条件和操作方法,如果条件为TRUE且未提及任何操作(如此代码),则默认情况下将打印当前行。

答案 1 :(得分:0)

这可能对您有用(GNU sed):

sed -nE 's/\S+/&/3p' file

仅打印包含3组或更多组非空格字符的行。