,沒有陣列的工作原理,使用一個額外的文件句柄的時間從2種源來讀取一個版本。
while read host; read result <&3; do
echo "$host:$result"
done < <(grep peers results.txt | cut -d: -f2 | awk '{print $1}') \
3< <(grep cleanup results.txt | cut -d':' -f2 | awk '{print $1}' | sed -e 's/K/000/' -'s/M/000000/')
它仍然不是POSIX,因爲它需要進程替換。你可以改用明確的fifes。 (另外,試圖縮短產生主機和結果的流水線,可能將這個命令合併爲一個awk
命令,因爲您可以在awk
中執行替換,或者從awk
中執行之間的管道輸入sed
。題外話,所以我把它作爲一個練習,讀者)
mkfifo hostsrc
mkfifo resultsrc
awk -F: '/peers/ {split($2, a, ' '); print a[1]}' results.txt > hostsrc &
awk -F: '/cleanup/ {split($2, a, ' '); print a[1]}' results.txt | sed -e 's/K/000' -e 's/M/000000/' > resultsrc &
while read host; read result <&3; do
echo "$host:$result"
done < hostsrc 3< resultsrc
'有:分隔條件them' - 你說:'回聲 「$ {HOST} $ {}結果」' – devnull
對不起我應該正確解釋,greps返回更多的結果。我得到了一個主機字符串列表和一個結果列表。返回的字符串和整數的順序是正確的,例如HOST [0]和RESULT [0]匹配。我想並排顯示它們。 –
提供來自results.txx文件的示例數據。 – anubhava