我正在运行下面的命令,它给出了如下输出。
lsblk -o NAME,MOUNTPOINT,SIZE,FSTYPE
NAME MOUNTPOINT SIZE FSTYPE
fd0 4K
sda 32G
ââsda1 /boot 500M xfs
ââsda2 / 31.5G xfs
sdb 512G
ââsdb1 /mnt/resource 512G ext4
sdc 128G LVM2_member
ââvgdata-lvdata /u01 128G ext4
sdd 1T LVM2_member
ââvgdata5-lvdata5 /ora01 1024G ext4
sde 16T LVM2_member
ââvgdata4-lvdata4 /data 16T ext4
但是我想要的输出如下
sdc,ext4,128G,
sdd,ext4,1T,
sde,ext4,16T,
但如果运行该命令,
lsblk -o NAME,MOUNTPOINT,FSTYPE,SIZE | cat -vets | sed -e "s/.*@//1" | egrep "sdc|sdd|sde" | awk '{ print $1","$2","$3","$4 }'
它给出了以下输出
sdc,LVM2_member,128G,
sdd,LVM2_member,1T,
sde,LVM2_member,16T,
有人能帮我把这件事做完吗?
发布于 2020-08-20 21:57:17
您可以尝试使用GNU awk
编写和测试下面的示例吗?
awk '
BEGIN{
OFS=","
}
!NF{
next
}
{ gsub(/\r/,"") }
/sdc|sdd|sde/{
sub(/_.*/,"",$NF)
print $1,prev_mount,$(NF-1)
prev_mount=""
next
}
{
prev_mount=$NF
}' Input_file
https://stackoverflow.com/questions/63499650
复制相似问题