ShellScript

ランダムに出てくる単語を数え上げるシェルスクリプト

More than 1 year has passed since last update.


やること


words.txt

abc

abc
123
xyz
123
xyz
abc
123
abc

こんなファイルがあったとします。1行に1個「単語」が書かれていて、ファイル内にどんな単語があるのか予めわかってはいません。

で、このファイルを見て

123 -> 3個

abc -> 4個

xyz -> 2個

というふうに、出てきた単語全てについて何個出てきたかを数えたいのです。


やってみたら以外と簡単だった(ノ´ー`)ノ


counter.sh

#!/bin/sh

cat words.txt | sort | uniq | while read WORD
do
echo "${WORD} "$(grep -c "${WORD}" words.txt)
done

こんな感じでした。

[]$ ./counter.sh 

123 3
abc 4
xyz 2