我想只使用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
我用过这个。有什么问题?
答案 0 :(得分:1)
awk '$2 ~ "^A" && $3 == "IT" {print $2, $3}'
没有像== "A*"
答案 1 :(得分:1)
这对你有用:
kent$ awk '$2~/^A/&&$3=="IT"{print $2,$3}' file
Aarthi IT
您的问题是由glob和正则表达式混淆。
在awk中,==
不进行全局检查,它会比较两个值,检查它们是否相等。 ~
是一个正则表达式匹配检查,它期望静态或动态正则表达式。