尋找包含以某些字元開頭和結尾的字串的記錄

尋找包含以某些字元開頭和結尾的字串的記錄

我需要一個命令(最好使用)來列出名稱以以下列表開頭和結尾的awk所有學生的唯一捲號和姓名:Ak

001 Abhishek Physics 90
002 Rohan Maths 100
003 simashree Chemistry 89
002 Rohan Language 80
005 Vamsi Computers 99
001 Abhishek Maths 95
006 Surjya Computers 93 

答案1

由於您專門要求使用 的解決方案awk,然後假設卷號和名稱是第一個和第二個字段,您可以使用

awk '$2 ~ /^A[[:alpha:]]*k$/ {print $1,$2}' yourfile

sort -u如果您需要唯一的記錄,最簡單的方法是透過命令傳遞結果

awk '$2 ~ /^[[:alpha:]]*k$/ {print $1,$2}' yourfile | sort -u


使用可能更正確詞錨代替線錨正規表示式中的^,$即

awk '$2 ~ /\<[[:alpha:]]*k\>/ {print $1,$2}' ...

兩者似乎都在這種情況下工作(可能是因為該字段已經用空格分隔)。

答案2

假設您在名為 的檔案中有這些記錄data_file.txt,您可以使用:

grep "A[a-z]*k" data_file.txt

如果要刪除第一列數字,請使用:

grep "A[a-z]*k" test | cut -d" " -f 2-

如果要刪除最後一列數字,請使用:

grep "A[a-z]*k" test | cut -d" " -f -3

相關內容