2016-01-24 160 views
1

我試圖尋找這個,但找不到任何適合我的東西。 我的問題是,我需要轉換的具有擴展.txt一條線多個文件的內容,例如:將文本文件轉換爲單行

1 
2 
3 
4 

我想轉換爲12341 2 3 4

我也有我想要包括的子文件夾。我嘗試了多次嘗試Linux,甚至嘗試過Windows的TextCrawler 3,但沒有任何幫助。

+1

顯示您的嘗試。 –

+0

[在bash中轉置文件]的可能重複(http://stackoverflow.com/questions/1729824/transpose-a-file-in-bash) – PoX

回答

1

嘗試翻譯:

cat *.txt | tr -d '\n' 

-d表示刪除所有換行符\n字符。

如果你想擁有的空間,你可以做

cat *.txt | tr '\n' ' ' 
1

要刪除新行或用空格代替它們:

$ paste -s -d '' infile 
1234 
$ paste -s -d ' ' infile 
1 2 3 4 

僅打印到標準輸出。要更改文件的地點:

$ paste -s -d ' ' infile > infile.tmp && mv infile.tmp infile 
$ cat infile 
1 2 3 4 

爲許多文件做到這一點,例如在當前文件夾中的所有.txt文件和所有子文件夾:

$ find -name '*.txt' -exec bash -c 'paste -s -d " " {} > {}.tmp && mv {}.tmp {}' \; 

這不是因爲它創造了一個非常優雅子部分在exec部分中,但在findexec部分中存在重定向時,這是一種方法。

0

刪除所有行從*文件打破.TXT

sed -z -i 's/\n//g' *.txt 

轉換所有換行符空格* .TXT

sed -z -i 's/\n/ /g' *.txt 

但子目錄您需要找到一些幫助。

find -name "*.txt" -exec sed -z -i 's/\n/ /g' {} ';'