我有一个包含 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