拉出第 3 列中包含 1 的行

ril*_*ley 2 text-processing

我有一个 633K 行的文本文件,全部有 3 列

768844  30050038638556  0
768892  30050018569904  1
768967  30050028970902  0
Run Code Online (Sandbox Code Playgroud)

如何在文件中提取第 3 列中有“1”的那些行,结果应该是只有 1 的行

768892  30050018569904  1
Run Code Online (Sandbox Code Playgroud)

Jef*_*ler 7

如果您希望第 3 列恰好为“1”,则:

awk '$3==1' input > output
Run Code Online (Sandbox Code Playgroud)

如果您希望第 3 列包含“1”,则:

awk '$3~1' input > output
Run Code Online (Sandbox Code Playgroud)

如果您更喜欢 sed,这里有一个“第 3 列正好是 1”:

sed -rn '/^[^ ]*[ ]*[^ ]*[ ]+1$/ p' input > output
Run Code Online (Sandbox Code Playgroud)

...和 ​​sed 用于“第 3 列包含 1”:

sed -rn '/^[^ ]*[ ]*[^ ]*[ ]+.*1.*$/ p'
Run Code Online (Sandbox Code Playgroud)