使用bash關聯陣列統計單詞

2022-08-26 13:18:19 字數 835 閱讀 8004

從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...