Shell脚本数据处理求助:格式化实例关联的IP状态输出
Shell脚本处理实例关联数据的解决方案
直接用awk就能搞定这个需求,它很适合处理这种需要上下文关联的文本:
awk '/^Instance:/ {inst=$2; next} /^[[:space:]]+x\.x\.x\.x/ { $0=inst" "$0; if(NF==3) $3="rmt "$3; print }' temp
命令说明:
- 碰到
Instance:开头的行,把第二个字段(也就是A/B)存到变量inst里,然后跳过当前行继续处理下一行。 - 碰到以空格开头的IP状态行,先把
inst拼到行首;如果这行只有3个字段(比如原数据里B下面的x.x.x.x up),就给它补上rmt字段,最后输出处理后的行。
你之前的命令问题出在:
- 语法错误,正确的管道写法应该是
cat temp | grep -i instance | sed 's/.*: //' - 这个命令只提取了实例名称,根本没处理后续的状态行,自然达不到把实例名和对应状态行关联的效果。
内容的提问来源于stack exchange,提问作者Yohan Oc
相关产品推荐
相关产品推荐

