首页 > 解决方案 > 如何将 gcloud 计算实例列表输出格式化为 excel 格式

问题描述

尝试了各种方法,但最接近工作方法:

  1. 用一个替换多个空格
  2. 将 INTERNAL_IP 列中的逗号 (,) 替换为 Pipe(|)
  3. 删除第 4 个 cloumn (PREEMPTIBLE),因为它导致 INTERNAL_IP cloumn 中的 IP 在其下移动。
  4. 用逗号(,)替换空格以准备 csv 文件。

但没有奏效。在 PREEMPTIBLE cloumn 搞砸了。

    gcloud compute instances list > file1 
    
    tr -s " " < file1 > file2 // to replace multiple spaces with single one
    
    sed s/\,/\|/g file2 > file3 // to replace , with pipe
    
    awk '{$4=""; print $0}' file3 // to remove 4th column
    
    sed -e 's/\s\+/,/g' file3 > final.csv

命令输出gcloud compute instances listgcloud 计算实例列表命令的输出:

预期格式: 预期格式

任何帮助或建议表示赞赏。先感谢您。

编辑:附加示例输入和预期输出文件:

sample_input.txt

预期输出.xlsx

标签: linuxshellcsvawksed

解决方案


根据附件示例输入和预期输出,我进行了以下更改:

  1. 多个内部 IP 的一些实例,它们用“,”分隔。我已使用sed 's/,/-/g'将"," 替换为 "-" ,以避免在生成 CSV 时与其他字段发生冲突。

  2. 在第 5 列和第 7 列中显示 4 美元和 6 美元,以便它们与列标题内部 IP 地址状态对齐

    cat command_output.txt | grep -v '名称' | sed 's/,/-/g' | awk ' BEGIN {print "NAME,ZONE,MACHINE_TYPE,PREMPTIBLE,INTERNAL_IP,EXTERNAL_IP,STATUS"} {print $1","$2","$3","""","$4","""","$5 }'


推荐阅读