2016-01-24 181 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' {} ';'