0

次のようなスペースで区切られた単語を含む.txtファイルがあるとします。

But where is Esope the holly Bastard
But where is 생 지 옥 이 군
지 옥 이
지 옥
지
我 是 你 的 爸 爸 !
爸 爸 ! ! !
你 不 會 的 !

そしてAwk関数

cat /pathway/to/your/file.txt | tr ' ' '\n' | sort | uniq -c | awk '{print $2" "$1}'

コンソールに次の出力が表示されますが、これは韓国語の単語には無効です(英語と中国語のスペースで区切られた単語には有効です)。

생 16
Bastard 1
But 2
Esope 1
holly 1
is 2
the 1
where 2
不 1
你 2
我 1
是 1
會 1
爸 4
的 2

それを韓国語の単語で機能させる方法は? 注:私は実際には300.000行と200万語近くあります。


編集:使用された答え:

$ awk '{a[$1]++}END{for(k in a)print a[k],k}' RS=" |\n" myfile.txt | sort > myfileout.txt
4

1 に答える 1

2

単一のawkスクリプトでこれを簡単に処理でき、現在のパイプラインよりもはるかに効率的です。

$ awk '{a[$1]++}END{for(k in a)print k,a[k]}' RS=" |\n" file 
옥 3
Bastard 1
! 5
爸 4
군 1
지 4
But 2
會 1
你 2
the 1
是 1
不 1
이 2
Esope 1
的 2
holly 1
where 2
생 1
我 1
is 2

結果を別のファイルに保存する場合は、次のようなリダイレクトを使用できます。

$ awk '{a[$1]++}END{for(k in a)print k,a[k]}' RS=" |\n" file > outfile
于 2013-03-24T15:55:05.470 に答える