[英]Convert text files to single line
我试图寻找这个东西,但是找不到适合我的东西。 我的问题是我需要将扩展名为.txt
的多个文件的内容转换为一行,例如:
1
2
3
4
我想转换为1234
或1 2 3 4
。
我也有一些我想包含的子文件夹。 我尝试过使用Linux进行多次尝试,甚至尝试过Windows的TextCrawler 3,但没有任何帮助。
尝试翻译:
cat *.txt | tr -d '\n'
-d
表示删除所有换行符\\n
字符。
如果您想拥有空间,可以做
cat *.txt | tr '\n' ' '
要删除换行符或将它们替换为空格:
$ 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
部分中创建了一个子外壳,但是当find
的exec
部分中存在重定向时,这是一种方法。
从* .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' {} ';'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.