Shell Unix中基于文本的过滤记录

Shell Unix中基于文本的过滤记录,shell,unix,awk,sed,Shell,Unix,Awk,Sed,我试图从这个文件中提取与第10个字段中的文本“IN”匹配的所有记录 我试过了,但结果不准确。在此提供的任何帮助都将不胜感激 awk '$10 == "IN" {print $0}' 输入文件:我的输入文件 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

我试图从这个文件中提取与第10个字段中的文本“IN”匹配的所有记录

我试过了,但结果不准确。在此提供的任何帮助都将不胜感激

awk '$10 == "IN" {print $0}'
输入文件:我的输入文件

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
输出文件:我的输出应该是

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”匹配的所有记录

因为您没有在
awk
代码中提到字段分隔符,所以默认情况下,它会留出空间作为字段分隔符,并且您的输入文件是
管道分隔的,所以让
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.

由于您没有在
awk
code中提到字段分隔符,因此默认情况下,它会留出空间作为字段分隔符,并且您的输入文件是
管道分隔的,因此让
awk
知道您应该在code中设置它

你能试试下面的吗

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.

伟大的我无法理解单引号和双引号。你能告诉我在awk中使用单引号/双引号的顺序吗?太好了!我无法理解单引号和双引号。你能告诉我在awk中使用单引号/双引号的顺序吗?