我有一个 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)
如果您希望第 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)