从文本文件中删除行
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 组或更多组非空白字符的行。
我正在尝试删除只有 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 组或更多组非空白字符的行。