带awk的linux中的分隔列
我有一个包含两个字段的文件(df.txt),但第一个字段的大小不同:带awk的linux中的分隔列,awk,Awk,我有一个包含两个字段的文件(df.txt),但第一个字段的大小不同: HOL99001 121112120001121122020112122010202121010100022002021................ 804B 121202011100121121200010200120202220111200011002010.................... WW9 212202021000022111111111201001110001111200020200211......
HOL99001 121112120001121122020112122010202121010100022002021................
804B 121202011100121121200010200120202220111200011002010....................
WW9 212202021000022111111111201001110001111200020200211.....................
我使用的程序要求第二个字段必须在不同行的相同位置开始,因此:
HOL99001 121112120001121122020112122010202121010100022002021
804B 121202011100121121200010200120202220111200011002010
WW9 212202021000022111111111201001110001111200020200211
我正在使用
awk '{print $1.8, $2}' df.txt > dfinal.txt
您可以使用:
gawk '{printf("%8s %s\n", $1, $2)}' df.txt
HOL99001 121112120001121122020112122010202121010100022002021
804B 121202011100121121200010200120202220111200011002010
WW9 212202021000022111111111201001110001111200020200211
或:
请提供示例输入和预期输出,以及
$1.8
应该做什么?我在这里支持anubhava先生。很好,你已经以代码的形式展示了你的努力,继续努力。但是输入和预期输出的样本与努力同样重要,您的样本不清楚,请编辑您的问题,然后告诉我们。@anubhava 1.8表示字段1的大小最大为8awk'{printf'%-8s%s%s',$1,OFS,$2,ORS}文件
。如果平台上有列
命令,您可以简单地使用column-tdf.txt
@johanaramirez GNU awk是gawk,而不是gwak,但是上面的代码应该适用于任何awk。@詹姆斯·布朗对不起,这是一个打字错误,我不知道为什么它不起作用
gawk '{printf("%-8s %s\n", $1, $2)}' df.txt
HOL99001 121112120001121122020112122010202121010100022002021
804B 121202011100121121200010200120202220111200011002010
WW9 212202021000022111111111201001110001111200020200211