微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Linux中使用AWK分隔列

如何解决在Linux中使用AWK分隔列

我有一个文件(df.txt),其中包含2个字段,但第一个字段的大小不同:

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

或:

gawk '{printf("%-8s %s\n",$2)}' df.txt
HOL99001 121112120001121122020112122010202121010100022002021
804B     121202011100121121200010200120202220111200011002010
WW9      212202021000022111111111201001110001111200020200211

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。