Linux下使用AWK格式化文件:提取首字段前10字符作为分组标题
AIX df -Pg输出格式化修改方案
修改后完整脚本
# COLLECT THE DATA ################## /opt/local/sbin/pcmdrun -o aix "df -Pg" > /tmp/bifsize1 # FORMAT THE DATA ################# awk ' { # 提取当前主机名前10位标识 curr_host = substr($1, 1, 10) # 主机变更时打印分组标题 if (curr_host != last_host) { printf "%18s\n", curr_host last_host = curr_host } # 处理带磁盘统计的有效行 if (NF > 1) { printf "%-18s %8.2f %8.2f %8.2f %8s %s\n", $2, $3, $4, $5, $6, $7 } }' /tmp/bifsize1 >> /tmp/bifsize.$(date +'%Y%m%d').txt
逻辑说明
- 遍历每行时优先提取第一列主机名的前10个字符作为分组标识
- 当分组标识发生变化时,先右对齐18位打印主机名作为该组的标题
- 字段数大于1的有效磁盘行,设备名左对齐18位输出,后续容量、使用率、挂载点按对齐规则格式化输出
- 自动兼容仅有主机名无磁盘信息的行,仅输出对应主机标题
内容的提问来源于stack exchange,提问作者steve ecott
相关产品推荐
相关产品推荐

