使用 cut 命令打印正确的字段
using the cut command to print the right field
这是我的非常短的脚本,用于显示有关存储卷的一些信息:
get_ip="$(ssh @ volume show"
echo "$get_ip"
当我 运行 我的 bash 脚本是输出到终端的内容:
Vserver Volume Aggregate State Type Size Available Used%
--------- ------------ ------------ ---------- ---- ---------- ---------- -----
vs_cfm06 Available aggr_backup_1 online RW 100GB 66.35GB 33%
vs_cfm06 Discovery aggr_backup_1 online RW 100GB 66.35GB 33%
vs_cfm06 Software aggr_backup_1 online RW 100GB 65.08GB 34%
vs_cfm06 Template aggr_backup_1 online RW 100GB 66.35GB 33%
vs_cfm06 rootvol aggr_backup_1 online RW 1GB 972.5MB 5%
vs_cfm06 vol aggr_backup_1 online RW 1GB 972.6MB 5%
6 entries were displayed.
我真正想要的只是卷的名称:
Volume
---------
Available
Discovery
Software
Template
rootvol
vol
我需要对我的命令进行哪些更改才能仅获取此信息?
非常感谢!
echo "$get_ip" | grep -v "entries" | awk '{print }'
或剪切:
echo "$get_ip" | tr -s " " | grep -v "entries" | cut -d " " -f 2
如果您只想要第二列(也包含 headers 但不是最后一行),请像这样使用 awk
:告诉它只获取恰好包含 8 个字段的行。
get_ip="$(ssh @ volume show)"
echo "$get_ip" | awk 'NF==8{print }'
测试
文件 a
包含您给定的输入。
$ awk 'NF==8{print }' a
Volume
------------
Available
Discovery
Software
Template
rootvol
vol
这是我的非常短的脚本,用于显示有关存储卷的一些信息:
get_ip="$(ssh @ volume show"
echo "$get_ip"
当我 运行 我的 bash 脚本是输出到终端的内容:
Vserver Volume Aggregate State Type Size Available Used%
--------- ------------ ------------ ---------- ---- ---------- ---------- -----
vs_cfm06 Available aggr_backup_1 online RW 100GB 66.35GB 33%
vs_cfm06 Discovery aggr_backup_1 online RW 100GB 66.35GB 33%
vs_cfm06 Software aggr_backup_1 online RW 100GB 65.08GB 34%
vs_cfm06 Template aggr_backup_1 online RW 100GB 66.35GB 33%
vs_cfm06 rootvol aggr_backup_1 online RW 1GB 972.5MB 5%
vs_cfm06 vol aggr_backup_1 online RW 1GB 972.6MB 5%
6 entries were displayed.
我真正想要的只是卷的名称:
Volume
---------
Available
Discovery
Software
Template
rootvol
vol
我需要对我的命令进行哪些更改才能仅获取此信息? 非常感谢!
echo "$get_ip" | grep -v "entries" | awk '{print }'
或剪切:
echo "$get_ip" | tr -s " " | grep -v "entries" | cut -d " " -f 2
如果您只想要第二列(也包含 headers 但不是最后一行),请像这样使用 awk
:告诉它只获取恰好包含 8 个字段的行。
get_ip="$(ssh @ volume show)"
echo "$get_ip" | awk 'NF==8{print }'
测试
文件 a
包含您给定的输入。
$ awk 'NF==8{print }' a
Volume
------------
Available
Discovery
Software
Template
rootvol
vol