拉出第 3 列中包含 1 的行

拉出第 3 列中包含 1 的行

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

768844  30050038638556  0
768892  30050018569904  1
768967  30050028970902  0

如何在文件中提取第三列中包含“1”的行,结果应该只有包含 1 的行

768892  30050018569904  1

答案1

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

awk '$3==1' input > output

如果您希望第 3 列包含‘1’,那么:

awk '$3~1' input > output

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

sed -rn '/^[^ ]*[ ]*[^ ]*[ ]+1$/ p' input > output

...以及 sed 的“第 3 列包含 1”:

sed -rn '/^[^ ]*[ ]*[^ ]*[ ]+.*1.*$/ p'

答案2

假设第三列之后没有空格(即数字位于行的最末尾)并且您只处理第三列上的个位数:

grep '1$'  input.txt > output.txt

相关内容