从文本文件中删除行

Remove lines from a text file

我正在尝试删除只有 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 或类似的东西)

提前致谢

这对 awk 来说应该是一个简单的任务,如果您不介意的话。

awk 'NF>2' Input_file

解释:

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

  • awk 默认情况下使用 space 作为分隔符,因此根据 OP,它应该超过 2 个单词,因此给定 >2 条件。

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

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

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

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