[英]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.