文件1:
1
2
文件2:
1 2 3
4 5
文件 3:
x x x
yy yy
zz
paste file1 file2 file2
给我一个制表符分隔的输出:
1 1 2 3 x x x
2 4 5 yy yy
zz
paste -d""file1 file2 file3
给我输出:
1 1 2 3 x x x
2 4 5 yy yy
zz
我想要它如下:
1 1 2 3 x x x
2 4 5 yy yy
zz
知道这是否可行或者我应该尝试任何其他命令吗?
最佳答案
可以在之后使用 sed 来删除标签
paste file file2 file3 | sed 's/\t/ /'
1 1 2 3 x x x
2 4 5 yy yy
zz
这是一个通用的 awk 脚本,可以处理任意数量的任意格式的文件。
awk '
{x=ARGIND;a[x]=a[x]>(b=length($0))?a[x]:b}
{F[FNR,x]=$0}
END{
for(q=1;q<=FNR;q++)
{
for(i=1;i<=ARGC;i++)
{
printf( "%-"a[i]"s ",F[q,i])
}print ""
}
}' file{1,2,3,4)
关于Bash 粘贴命令输出格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26466260/