2012-04-30 39 views
4

是否有一个shell脚本在mac上运行,从文本文件生成一个单词列表,列出了唯一的单词?更妙的是,如果它可以通过频率排序....bash shell脚本让mac从文件生成单词列表?

对不起忘了提,是的,我喜欢bash的一个,因为我使用的是Mac现在...

哦,我的文件是在法国.. (基本上我正在读一本小说和学习法语,所以我尝试生成一个单词列表帮助我自己)。希望这不是问题?

+0

你试过的脚本是什么 – Satya

+0

什么环境?视窗? Linux的/ MAC/Unix的? – birryree

+0

@Matt这只是排序,使独特。它不会从文件中提取文字 –

回答

2

此命令会做

cat file.txt | tr "\"' " '\n' | sort -u 

这里sort -u不会在Macintosh计算机上运行。在这种情况下,请使用sort | uniq -c。 (感谢Hank Gay

cat file.txt | tr "\"' " '\n' | sort | uniq -c 
+0

我觉得'sort | uniq -c'是一个更好的选择,因为'sort -u'(在Mac上)不会显示单词,只是计数。 –

+0

它的工作原理!但需要一些修改... 1.没有字数2.不直接写入输出文件3.需要替换不仅()而且('),但感谢这是要走的路! – athos

+0

我怎么能用新行代替双引号和单引号? – athos

3

如果我理解正确的话,你需要类似的东西:

cat <filename> | sed -e 's/ /\n/g' | sort | uniq -c 
+0

太棒了!让我看看...... – athos

+0

你可以深入了解sed的正则表达式文档,使脚本更全面一些,但这就是我要做的,除非你必须做hackery才能真正获得换行,一个拉http://stackoverflow.com/a/7567839/4203 –

+0

不,它不工作... – athos

1

只要回答我的问题点下来的最终版本我使用:

tr -cs "[:alpha:]" "\n" < FileIn.txt | sort | uniq -c | awk '{print $2","$1}' >> FileOut.csv 

一些注意事项:

  • TR可以直接用来做替代。
  • 因为我很感兴趣为我的法语词汇表创建一个单词列表,我用[:alpha:]
  • awk用于插入逗号,以便输出是一个csv文件,更容易上传。 ..

再次感谢大家帮助我。

对不起,我没有把它放在开始,我使用一个mac,并期望一个bash脚本。

欢呼声。