如何将文件合并为一个带有换行符的文件?
How to merge files into one with break line?
我在目录中有文件:
1.txt
2.txt
3.txt
每个文件一行,每个文件末尾没有换行。如何将这些文件合并为一个,并在每个文件的末尾添加一个换行符?
如果我运行:
cat 1.txt 2.txt 3.txt > 123.txt
文件合并了,但是所有的内容都变成了一行,因为原来的行没有换行。如何在合并中添加中断每一行?
echo > /tmp/line
cat 1.txt /tmp/line 2.txt /tmp/line 3.txt /tmp/line > 123.txt
或者:
{ cat 1.txt && echo && cat 2.txt && echo && cat 3.txt && echo; } > 123.txt
或者:
awk '{print}' {1,2,3}.txt > 123.txt
或者:
grep -h '' {1..3}.txt > 123.txt
或者:
cut -c 1- 1.txt 2.txt 3.txt > 123.txt
或者:
sed '' *.txt > 123.txt
几乎任何面向行的文本过滤器都可以,因为它们都知道如何处理末尾缺少换行符的文件。只有 cat
如此简单以至于无法按照您的意愿进行操作(部分原因是人们将其用于非文本数据)。
我在目录中有文件:
1.txt
2.txt
3.txt
每个文件一行,每个文件末尾没有换行。如何将这些文件合并为一个,并在每个文件的末尾添加一个换行符?
如果我运行:
cat 1.txt 2.txt 3.txt > 123.txt
文件合并了,但是所有的内容都变成了一行,因为原来的行没有换行。如何在合并中添加中断每一行?
echo > /tmp/line
cat 1.txt /tmp/line 2.txt /tmp/line 3.txt /tmp/line > 123.txt
或者:
{ cat 1.txt && echo && cat 2.txt && echo && cat 3.txt && echo; } > 123.txt
或者:
awk '{print}' {1,2,3}.txt > 123.txt
或者:
grep -h '' {1..3}.txt > 123.txt
或者:
cut -c 1- 1.txt 2.txt 3.txt > 123.txt
或者:
sed '' *.txt > 123.txt
几乎任何面向行的文本过滤器都可以,因为它们都知道如何处理末尾缺少换行符的文件。只有 cat
如此简单以至于无法按照您的意愿进行操作(部分原因是人们将其用于非文本数据)。