我想合并两个文件cat file1 file2 > file3
。但它从新线开始。我不希望这样。我可以使用tr将所有新行替换为空格,但我不能这样做,因为文件中有新行我不想替换。
答案 0 :(得分:18)
您可以将head
与-1
一起用作-c
标志参数和-q
head -c -1 -q file1 file2 > file3
head -c -1
将输出代码的最后1个字节(在这种情况下,最后1个字节 - 结束 - 不包括在内)。 -q
是file3
,head
默认情况下,当head
多个文件时,文件名不会传递给tr
。
或者,正如此回答所建议的那样 - bash cat multiple files content in to single string without newlines
,将其传递给tr -d "\n"
:
{{1}}
答案 1 :(得分:2)
在bash中,你可以这样做:
cat <(sed -n '1n;p' file1) <(sed -n '1n;p' file2)
答案 2 :(得分:-1)
awk '(FNR>1){print}' file1 file2
更新 - 工作原理:
我们要求awk
处理两个文件:file1
和file2
。如果条件(FNR>1)
为真,它将打印整个记录(行)。 FNR
是变量defined as:
FNR - 当前输入文件中的输入记录编号。
所以,条件(FNR>1)
每次都是真的,除了每个文件的第一行。这样我们就会跳过每个文件的第一行。