awk - 使用 awk 在 linux 中分隔列
问题描述
我有一个包含 2 个字段的文件(df.txt),但第一个字段的大小不同:
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", $1, $2)}' df.txt
HOL99001 121112120001121122020112122010202121010100022002021
804B 121202011100121121200010200120202220111200011002010
WW9 212202021000022111111111201001110001111200020200211
推荐阅读
- javascript - 数组过滤器方法不返回修剪值
- svm - 如何使用 H2O 训练线性 SVM
- google-apps-script - 如何使用参数将谷歌脚本功能分配给图像按钮
- html - 无法从 jQuery 单击功能中的元素获取自定义属性
- javascript - 如何做一个输入框占位符动画
- javascript - 如何在 Nuxt.js 中使用异步等待?
- c# - 三重 DES C# 错误:指定的初始化向量 (IV) 与此算法的块大小不匹配
- azure - 是否可以使用 azure rest api 找到现有虚拟机的可用位置?
- json - 如何从 ruby 脚本转换的 JSON 中提取数据?
- git - 无法推送到分叉仓库,身份验证失败