我從 awk 得到這個輸出:
vfp-10m1
vfp-8m1
vfp-9m1
vfp-10m2
vfp-8m2
vfp-9m2
vfp-10vr
vfp-8vr
vfp-9vr
我怎樣才能做到每行都有其唯一的變數?像A=vfp-8m1和B=vfp-8m2,等等等等?
uj5u.com熱心網友回復:
出于演示目的:
$ cat awk.out
vfp-10m1
vfp-8m1
vfp-9m1
vfp-10m2
vfp-8m2
vfp-9m2
vfp-10vr
vfp-8vr
vfp-9vr
一種mapfile用于將awk輸出加載到名為 的陣列中的想法vars[]:
mapfile -t vars < awk.out
# NOTE: feeding directly from a `awk` script:
mapfile -t vars < <(awk '1' awk.out)
陣列內容:
$ typeset -p vars
declare -a vars=([0]="vfp-10m1" [1]="vfp-8m1" [2]="vfp-9m1" [3]="vfp-10m2" [4]="vfp-8m2" [5]="vfp-9m2" [6]="vfp-10vr" [7]="vfp-8vr" [8]="vfp-9vr")
通過回圈訪問:
for i in "${!vars[@]}"
do
echo "index=$i ; value=${vars[i]}"
done
產生:
index=0 ; value=vfp-10m1
index=1 ; value=vfp-8m1
index=2 ; value=vfp-9m1
index=3 ; value=vfp-10m2
index=4 ; value=vfp-8m2
index=5 ; value=vfp-9m2
index=6 ; value=vfp-10vr
index=7 ; value=vfp-8vr
index=8 ; value=vfp-9vr
uj5u.com熱心網友回復:
如果你的行數不多于字母
awk 'BEGIN {i=65} {printf("%c=%s\n",i ,$0)}' file.txt
否則使用像A0, A1, ...這樣的數字
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/378768.html
上一篇:在Shell腳本中匹配列和行
