删除第k个字段为"NA"的所有行

zku*_*rtz 3 bash awk lines

修复k,比如说k = 2.假设我们有一个文本文件,file.txt至少有k列,并且列由|符号分隔.如何file.txt通过删除第2列等于"NA"的每一行来清理?让我们说输出是针对的outfile.txt.

小智 6

awk '$2 != "NA"' FS='|'
Run Code Online (Sandbox Code Playgroud)

输入:

111|222|333
444|NA|666
777|888|999
Run Code Online (Sandbox Code Playgroud)

输出:

111|222|333
777|888|999
Run Code Online (Sandbox Code Playgroud)

  • 将`k`作为变量传递:`awk'$ k!="NA"'FS ='|' k = 2 file.txt`或`awk -F'|' -vk = 2'$ k!="NA"'file.txt` (2认同)