Awk:CJK角色有什么问题? #Korean

时间:2013-03-24 14:40:20

标签: awk cjk word-frequency

给定.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行和近2百万字。


编辑:使用答案:

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

1 个答案:

答案 0 :(得分: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