我有一個陣列:
ABC
GHI
XYZ
ABC
GHI
DEF
MNO
XYZ
如何計算此陣列中每個短語的出現次數?
(我可以使用 for 回圈嗎?)
預期輸出:
2 ABC
1 DEF
2 GHI
1 MNO
2 XYZ
非常感謝!
uj5u.com熱心網友回復:
sort file.txt | uniq -c 應該做的作業。
如果您的意思是 bash 中的陣列,請回顯它們:
array=(ABC GHI XYZ ABC GHI DEF MNO XYZ)
for i in "${array[@]}"; do echo "$i"; done | sort | uniq -c
輸出:
2 ABC
1 DEF
2 GHI
1 MNO
2 XYZ
uj5u.com熱心網友回復:
使用 purebash和關聯陣列來保存計數:
#!/usr/bin/env bash
declare -a words=(ABC GHI XYZ ABC GHI DEF MNO XYZ) # regular array
declare -A counts # associative array
# Count how many times each element of words appears
for word in "${words[@]}"; do
counts[$word]=$(( ${counts[$word]:-0} 1 ))
done
# Order of output will vary
for word in "${!counts[@]}"; do
printf "%d %s\n" "${counts[$word]}" "$word"
done
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/361167.html
標籤:猛击
