我試圖決議一個檔案,就像:
for NAME in `cat file.txt | grep name | awk '{print $2}'`
do
echo " $NAME "
......
done
file.txt 內容:
name John box 2
name Joe box 3
name May box 4
然后它會列印:
John
Joe
May
但是現在我想同時獲取盒子編號,我需要將 name 和 box 存盤在兩個變數中,如何做到這一點?
預期結果:
echo "$NAME $BOX"
John 2
Joe 3
May 4
uj5u.com熱心網友回復:
這里根本不需要 Awk(或cat!)。
grep '^name' file.txt |
while read -r _ name _ box;
do
echo " $name $box "
......
done
或者,如果您只想列印這兩個欄位而不對這些變數執行任何操作,只需
awk '/^name/ { print $2, $4 }' file.txt
另請參閱不要閱讀行for
更根本的是,您可能想要修改您的檔案格式,以便不必在每一行上指定標簽(或者如果這真的很有用,可以使用允許這種結構的標準檔案格式,例如 JSON 或YAML)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/359456.html
上一篇:無法使用PyCryptodomeECC(ASN1?)驗證簽名
下一篇:如何使用sed列印網站的標題
