繁体   English   中英

根据第一个字母awk Unix查找记录的方法

[英]Ways to find records based on their first letter awk Unix

我只想使用awk删除名称以A开头的人。 我该怎么做

REGNO   NAME            DEPT            AVG             STATUS
100     Tony            ECE             30              FAIL
200     Jimmy           ECE             67              PASS
300     Sanjay          CSE             89              PASS
400     Nethra          IT              90              PASS
500     Ramesh          MECH            45              FAIL
600     Ranjani         CSE             34              FAIL
700     Aarthi          IT              56              PASS
800     Ram             MECH            98              PASS


awk '{if($2=="A*" && $3=="IT" )  print $2,$3}' output.txt


我用这个 怎么了?

awk '$2 ~ "^A" && $3 == "IT" {print $2, $3}'

没有通配符匹配,例如== "A*"

这将为您工作:

kent$  awk '$2~/^A/&&$3=="IT"{print $2,$3}' file
Aarthi IT

您的问题是,被glob和regex所混淆。

在awk中, ==不会进行全局检查,它会比较两个值,检查它们是否相等。 ~是正则表达式匹配检查,它期望使用静态或动态正则表达式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM