输入 名字Rico
澳大利亚地址
24岁
姓名Rica
致辞亚洲
25岁
输出 姓名Rico,地址澳大利亚,24岁
姓名Rica,地址亚洲,25岁
我们可以在Unix中这样做吗?
答案 0 :(得分:1)
sed ':a;N;$!ba;s/\n/, /g' filename
答案 1 :(得分:0)
您可以使用awk将多行转换为单行。
#!/usr/bin/awk
# table.awk
{
if (NR == 1) {
printf("%s",$0);
} else {
printf(",%s",$0);
}
}
$ cat input.csv
Name Rico
Address Australia
Age 24
Name Rica
Address Asia
Age 25
$ awk -f table.awk input.csv
Name Rico,Address Australia,Age 24,Name Rica,Address Asia,Age 25
Stackoverflow中有更有效的答案,如下所示:
答案 2 :(得分:0)
这是另一种选择......
paste -sd, inputfile
答案 3 :(得分:0)
我找到了解决方案:
awk'BEGIN {RS =“”; FS = “\ n”}; {print $ 1,$ 2}' file
这会将输入记录分隔符设置为空行,或者将此事项设置为连续的空行,因为下一条记录将是下一个非空行。这也将字段分隔符设置为下一行。