从文本文件中删除行

问题描述 投票:0回答:2

我正在尝试删除仅少于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或其他方式)

提前感谢

file unix sed line
2个回答
1
投票

如果您认为awk,这应该很容易。

awk 'NF>2' Input_file

说明:

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

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

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


0
投票

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

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

仅打印具有三组或更多组非空白字符的行。

© www.soinside.com 2019 - 2024. All rights reserved.