從bash 4開始支援關聯陣列,使用前需要宣告,即
declare -a map
map[key1]=value1
map[key2]=value2
map=([key1]=value1 [key2]=value2)
# 獲取keys
keys=$
# 獲取values
values=$
利用關聯陣列,很容易實現單詞統計,原始碼檔案wordcount.sh
#!/bin/bash
if [[ $# -lt 1 ]]
then
echo "usage: $0 "
exit 1
fifile=$1
declare -a count
for word in $(grep -p -o '\b\w+\b' $file)
do let count[$word]++
done
for word in $
do printf "%-14s%s\n" $word $
done
使用方法
./wordcount.sh filename
或者從標準流中使用,如
echo "hello world! goodbye world!" | ./wordcount.sh -
輸出為
hello 1
world 2
goodbye 1
1215 關聯陣列
一 陣列變數的限制 在前面講的陣列變數中,可以通過下標訪問其中的元素。例如,下列語句訪問陣列 array 的第三個元素 scalar array 2 雖然陣列很有用,但它們有乙個顯著缺陷,即很難記住哪個元素存貯的什麼內容。假如我們來寫乙個程式計算某檔案中首字母大寫的單詞出現的次數,用陣列來實現就比較...
9 3 關聯陣列
關聯陣列是bash 4.0新增的乙個特性。關聯陣列將值與索引連線 關聯 到一起,所以我們可以將元資料與實際資料關聯起來。使用這種方式可以將 家與他的樂器聯絡起來。關聯陣列必須以大寫的declare a命令來進行宣告。cat musicians.sh bin bash declare a beatle...
JS 關聯陣列
使用方式 var arr arr key1 value1 arr key2 value2 通常的陣列在填充時會隱式或者顯示指定陣列下標,但js中陣列可以以名字的形式為元素賦值,這就形成了關聯陣列,如 var arr new array arr china beijing,niaoling,hulan...