我的 list.txt 檔案具有以下格式:
name number
max 3
我的 test.txt 檔案具有以下格式:
position name hobby number
postdoc anna tennis 2
grad max football 5
undergrad timmy rugby 1
teacher max jogging 3
如何使用 list.txt 從 test.txt 中提取名稱和數字匹配的所有行,例如:我想max 3使用 list.txt 從 test.txt 中提取,以便輸出為teacher max jogging 3.
Max 和 3 應該出現在同一行中。
在這種情況下,您可以使用 grep 或 awk,尤其是當您的串列比此處更長時?
uj5u.com熱心網友回復:
這個單行應該給你結果:
$ awk 'NR==FNR{a[$1]=$2;next}$2 in a && a[$2]==$NF' list.txt test.txt
position name hobby number
teacher max jogging 3
uj5u.com熱心網友回復:
使用awk,您可以嘗試此操作以獲得預期的輸出。
$ awk 'FNR==NR {array[$2$4]=$2FS$3FS$4; next}FNR > 1{print array[$1$2]}' test.txt list.txt
max jogging 3
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/368383.html
下一篇:bash中的迭代檔案名
