2014-10-07 88 views
2

我有一套數百個我正在分析的.txt文件(使用NSP的ngram分析),我需要從每個文件中刪除所有換行符。我可以一次做一個使用tr:使用tr刪除多個文件中的換行符?

$ tr -d "\n\r" <input1.txt> output1.txt 

我該如何做到這一點我的整個目錄的文件一次?

回答

5

這會在.txt之前添加-out。除了.txt,你還沒有指定文件名是什麼,所以希望你沒有名爲foo-out.txt的輸入文件等。

for f in *.txt 
do 
    tr -d "\n\r" < "$f" > $(basename "$f" .txt)-out.txt 
done 
+2

完美。簡單而直接。我知道我不應該在這裏說「謝謝」,但由於我沒有足夠的代表+1這個,謝謝。 – 2014-10-07 03:41:58

+0

我會接受它! :) – 2014-10-07 03:43:05

+1

@TedMaclin:請注意,如果您獲得更多輸入文件並希望在同一個目錄中重新運行此腳本,它將重新處理'* -out.txt'文件。但我想沒關係,因爲它們不會被修改,而'tr'相當快。但是我建議給輸出文件一個不同的擴展名,所以你仍然可以爲你的輸入文件使用簡單的'* .txt' glob。或者甚至更好,把輸出文件放到一個單獨的目錄中。 – 2014-10-07 12:22:13