[英]lsblk command to redirect the output to csv file using shell command or shell script
我正在運行以下命令,它給出了如下所示的 output。
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
但我想要 output 如下
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 }'
它給出以下 output
sdc,LVM2_member,128G,
sdd,LVM2_member,1T,
sde,LVM2_member,16T,
誰能幫我完成這件事。
您能否嘗試使用 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.