Bash 使用“剪切”命令打印右侧字段

Bash 使用“剪切”命令打印右侧字段,bash,cut,Bash,Cut,这是我的简短脚本,用于显示有关存储卷的一些信息: get_ip="$(ssh $1@$2 volume show" echo "$get_ip" 当我运行bash脚本时,将向终端吐出以下内容: Vserver Volume Aggregate State Type Size Available Used% --------- ------------ ------------ ---------- ---- ---------- ---------

这是我的简短脚本,用于显示有关存储卷的一些信息:

get_ip="$(ssh $1@$2 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 $2}'
或带切割:

echo "$get_ip" | tr -s " " | grep -v "entries" | cut -d " "  -f 2

如果您只需要第二列(也包含标题,但不包含最后一行),请像这样使用
awk
:告诉它只获取正好包含8个字段的行

get_ip="$(ssh $1@$2 volume show)"
echo "$get_ip" | awk 'NF==8{print $2}'
试验 文件
a
包含给定的输入

$ awk 'NF==8{print $2}' a
Volume
------------
Available
Discovery
Software
Template
rootvol
vol

您的意思可能是
get_ip=“$(ssh$1@$2卷展)”
。也就是说,您错过了
之后的
收尾。谢谢!那正是我要找的!我是否可以将每个卷名附加到一个数组中并对其进行迭代?对不起,我是bash新手,它与我使用的其他语言非常不同。请开始一个新问题。非常感谢。