如果有人在將來讀這篇文章,想知道如何真正得到多行AWK輸出到一個bash數組:
$ cat ./tst.sh
# ensure globbing is off and set IFS to a newline after saving original values
oSET="$-"; set -f; oIFS="$IFS"; IFS=$'\n'
array=($(
awk 'BEGIN{
print "qh1adm 20130711151154 : tp import all QH1 u6 -Dsourcesystems=BFI,EBJ"
print "qh1adm 20130711151155 : tp import all QH1 u6 -Dsourcesystems=E7B,B17"
print "qh1adm 20130711151200 : tp import all QH1 u6 -Dsourcesystems=BFI,EBJ"
}'
))
# restore original IFS and globbing values
IFS="$oIFS"; set +f -"$oSET"
numElts="${#array[@]}"
if ((numElts > 1))
then
for ((i=0; i < numElts; i++));
do
printf "array[%d]: %s\n" "$i" "${array[$i]}"
done
fi
$
$ ./tst.sh tmp
array[0]: qh1adm 20130711151154 : tp import all QH1 u6 -Dsourcesystems=BFI,EBJ
array[1]: qh1adm 20130711151155 : tp import all QH1 u6 -Dsourcesystems=E7B,B17
array[2]: qh1adm 20130711151200 : tp import all QH1 u6 -Dsourcesystems=BFI,EBJ
但顯然都不是在這種情況下,實際需要和整個事情或許應該只是一個awk命令內完成。
以上內容已更新,以解決以下由@CharlesDuffy提出的問題和輸入內容。
嗨格倫,這很好。非常感謝你。 – user2544767
+1無視OP要求什麼,只是給他他需要的東西:-)! –