我正在尝试从该文件中提取与第十个字段中的文本“ IN”匹配的所有记录。
我尝试过,但没有给我准确的结果。在此提供的任何帮助将不胜感激。
awk '$10 == "IN" {print $0}'
input_file:我的输入文件
A1|A2|A3|A4|A5|A6|A7|A8|A9|PK|A11|A13|A14|A15|A16|A17|A18
1|2|3|4|5|6|7|8|9|IN|11|12|13|14|15|16|17|18
AW|BW|CQ|AA|AR|AF|RR|AKL|ASD|US|PP|BN|TY|OL|Q3|M8|I7|V6
AR|BR|CR|A8|AN|AQ|RU|A11|A13|IN|P9P|B0N|T2Y|O4L|Q43|M88|I71|V16
output_file:我的输出应该是
1|2|3|4|5|6|7|8|9|IN|11|12|13|14|15|16|17|18
AR|BR|CR|A8|AN|AQ|RU|A11|A13|IN|P9P|B0N|T2Y|O4L|Q43|M88|I71|V16
第10个字段中与“ IN”匹配的所有记录均应过滤。
答案 0 :(得分:2)
由于您没有在awk
代码中提到字段分隔符,因此默认情况下它将空格作为字段分隔符,并且您的Input_file是|
管道分隔的,所以让awk
知道您应该设置它以代码形式显示。
请您尝试以下。
awk -F'|' '$10=="IN"' Input_file
说明: 也为上述代码添加了说明。
awk -F'|' ' ##Setting field separator as |(pipe) for all lines of Input_file.
$10=="IN" ##Checking condition if 10th field is equal to IN here if yes then print the current line.
' Input_file ##Mentioning Input_file name here.