Awk如何修改最后一个字段格式并保持其余字段格式不变
解决方案
修改后的Awk代码如下:
echo $data | awk '{split($5, arr, ","); for(i=1;i<=length(arr);i++) printf "%-10s %-10s\n", i==1?$1:"", arr[i]}'
实现逻辑
- 调用Awk内置的
split()函数,将第5个字段按逗号分割为数组arr - 遍历数组中的每一个域名元素:
- 第一行输出时第一个位置打印原第一个字段
$1,后续行第一个位置打印空字符串,占用10字符宽度保证对齐 - 每行都沿用原有的
%-10s左对齐格式规则输出,保证整体排版一致
- 第一行输出时第一个位置打印原第一个字段
输出效果
运行后输出完全符合需求:
blue foo.bar.com foo.bar.eu
内容的提问来源于stack exchange,提问作者Bac
相关产品推荐
相关产品推荐

