2012-04-30 69 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腳本。

歡呼聲。