簡體   English   中英

用於創建數組的Shell腳本

[英]Shell script for creating arrays

我想為unix文件中的每個數字在第二個文件中運行grep,並將其確切內容放入數組中。

第一個文件(單詞)的格式如下:

a
b
c
d

第二個(頻率)包含

f 3
b 8
d 4
v 2
a 5
c 2

所以我想創建包含以下內容的數組:

[a 5]
[b 8]
[c 2]
[d 4]

幫助非常感謝!

您需要重置IFS變量(用於數組的分度符)。

OIFS=$IFS #save original
IFS=','
arr=($(awk 'FNR==NR {a[$1]=$2;next} a[$1] {print $1,a[$1]","}' second first))
IFS=$OIFS

echo ${arr[0]}
a 5
echo ${arr[1]}
b 8
echo ${arr[*]}
a 5
b 8
c 2
d 4

使用join的解決方案可能是:

sort second > second.sort
IFS=','
arr=($(join first second.sort | tr '\n' ','))
rm second.sort

輸出:

echo ${arr[0]}
a 5

暫無
暫無

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

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