簡體   English   中英

lsblk 命令使用 shell 命令或 shell 腳本將 output 重定向到 csv 文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM