簡體   English   中英

如何將輸出分配給兩個bash數組變量

[英]How can I assign output to two bash arrays variables

這里大概有類似的答案,但是沒有什么可以真正回答我的問題。 我在bash腳本中的某個點必須從輸出中填充兩個數組,如下所示:

part-of-the-file1:line_32
part-of-the-file1:line_97
part-of-the-file2:line_88
part-of-the-file2:line_93

我需要做的是在各自獨立的數組中提取文件和行號。 到目前為止,我有:

read FILES LINES <<<($(echo $INPUTFILES | xargs grep -n $id | cut -f1,2 -d':' | awk '{print $1 " " $2}'並具有經過修改的IFS=':'但我肯定沒有更好的解決方案,因為我不是腳本或工具向導。

read不能一次填充兩個數組 ,就像它可以使用單詞拆分填充兩個常規參數一樣。 最好只迭代管道的輸出以構建陣列。

while IFS=: read fname lineno therest; do
  files+=("$fname")
  lines+=("$lineno")
done < <(echo $INPUTFILES | xargs grep -n "$id")

在這里,我讓read進行grep輸出尾部的拆分和丟棄,以代替使用cutawk

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM