从 Linux bash 命令输出中解析所有列元素

从 Linux bash 命令输出中解析所有列元素

我想解析命令输出的列元素lsscsi

这是一个示例输出,

# lsscsi

[0:0:0:0]   disk   ATA   VBOX HARDDISK   1.0   /dev/sda
[0:0:1:0]   disk   ATA   VBOX HARDDISK   1.0   /dev/sdb
[1:0:1:0]   disk   ATA   VBOX HARDDISK   1.0   /dev/sdc

例如,如果我想要第 2 列,我的输出应该是,

disk
disk
disk

如果第 7 栏,

/dev/sda
/dev/sdb
/dev/sdc

答案1

awk实用程序可能是你的朋友

lsscsi | awk '{print $7}'
/dev/sda
/dev/sdb
/dev/sdc

lsscsi | awk '{print $2}'
disk
disk
disk

或者你可以使用但你可能需要先把空格弄乱

lsscsi | sed 's/ \+/ /g' | cut -f7 -d' '

相关内容