![](/img/trans.png)
[英]How can I assign the output of a function with parameters to a variable using 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
輸出尾部的拆分和丟棄,以代替使用cut
和awk
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.