我试图寻找这个,但找不到任何适合我的东西。
我的问题是我需要将扩展名为.txt
的多个文件的内容转换为一行,例如:
1
2
3
4
我想转换为1234
或1 2 3 4
。
我也有我希望包含的子文件夹。我尝试过多次尝试使用Linux,甚至尝试使用TextCrawler 3 for Windows,但没有任何帮助我。
答案 0 :(得分:1)
尝试翻译:
cat *.txt | tr -d '\n'
-d
表示删除所有换行符\n
。
如果您想拥有空间,可以
cat *.txt | tr '\n' ' '
答案 1 :(得分:1)
删除换行符或用空格替换它们:
$ paste -s -d ' ' infile > infile.tmp && mv infile.tmp infile
$ cat infile
1 2 3 4
这只打印到stdout。要更改文件:
.txt
要对许多文件执行此操作,例如当前文件夹和所有子文件夹中的所有$ find -name '*.txt' -exec bash -c 'paste -s -d " " {} > {}.tmp && mv {}.tmp {}' \;
个文件:
exec
这不是很优雅,因为它在exec
部分创建了一个子shell,但是当find
$Properties
部分中有重定向时,这是一种方法。< / p>
答案 2 :(得分: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' {} ';'