为了好玩,我想用命令行工具在 bash 中编写这个脚本。
# make the corpus
echo -e "this \t is a \n cor-pus; \nthis \t\nis \n\t sparta. \n" > corpus.txt
# munge, collapse whitespace, tokenize
cat corpus.txt | tr -d '.!@#$%^&*()-_=+' | tr '\t' ' ' | tr '\n' ' ' | tr -s ' ' | fmt -1 | uniq -c | sort -rn
我预计
2 this
2 is
1 a
1 corpus
1 sparta
但我明白了
1 this
1 is
1 a
1 corpus
1 this
1 is
1 sparta
uniq
管道时失败fmt -1
。也许有我看不到的 eof 字符cat -e
?如何uniq
决定什么是行,什么是文件?
echo a a b | fmt -1 | uniq
也符合我的预期,所以我不知道为什么... | fmt -1 | uniq | ...
我的脚本中的 不起作用。
谢谢