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

2 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
Run Code Online (Sandbox Code Playgroud)

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

disk
disk
disk
Run Code Online (Sandbox Code Playgroud)

如果第 7 列,

/dev/sda
/dev/sdb
/dev/sdc
Run Code Online (Sandbox Code Playgroud)

小智 6

AWK实用工具可能是你的朋友

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

lsscsi | awk '{print $2}'
disk
disk
disk
Run Code Online (Sandbox Code Playgroud)

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

lsscsi | sed 's/ \+/ /g' | cut -f7 -d' '
Run Code Online (Sandbox Code Playgroud)