我有一个像这样的文件
Line1
Line2
Line3
Line4
Line5
我需要这样的输出:
Line1Line2
Line3
Line4
Line5
我尝试了 sed“:a; N; $!ba; s / \ n // g”asd.txt ,但它将所有行合并为一行。
答案 0 :(得分:3)
awk解决方案就像
$ awk '{ORS=(NR==1?"":"\n")}1 ' input
Line1Line2
Line3
Line4
Line5
或强>
$ awk '{ORS=(NR==1?"":RS)}1 ' input
Line1Line2
Line3
Line4
Line5
答案 1 :(得分:2)
使用sed
您可以将操作限制为specific line number。在这种情况下,我们将append(到模式空间)和替换限制为第1行:
sed '1 {N; s/\n//}' file
请注意,此解决方案也可以在没有大括号的情况下编写:
sed '1N; s/\n//' file
但请注意,最后一个解决方案的可维护性稍差。这对你来说是否有问题是另一回事。在任何一种情况下,结果都是:
Line1Line2
Line3
Line4
Line5
答案 2 :(得分:0)
你可以试试下面的sed命令,
$ sed 'N;0,/\n/s/\n//' file
Line1Line2
Line3
Line4
Line5
N
将下一行添加到模式空间中。 0,/./
(指定范围)有助于仅在第一场比赛中进行替换。 s/\n//
用空字符串替换第一个换行符。
答案 3 :(得分:0)
sed '1 {N;s/\n//}'
结果
Line1Line2
Line3
Line4
Line5
取第1行并添加下一行。然后删除换行符