簡體   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