Parse / proc / mounts和substitude只有一个字段

时间:2015-08-02 07:10:13

标签: bash awk substitution

我正在寻找一种方法来打印来自/ proc / mounts的信息:

/home     /dev/md9    /dev/mapper/home    home
/var/tmp  /dev/md7    /dev/mapper/vartmp  vartmp

我试试:

awk '{ print $2 " " $1; gsub("/","",$2); print "/dev/mapper/"$2" "$2 }' /proc/mounts

但结果分为两行:

/home /dev/mapper/home
/dev/mapper/home home
/var/tmp /dev/md7
/dev/mapper/vartmp vartmp

有没有人有解决方案?

1 个答案:

答案 0 :(得分:2)

<强>修复

  
      
  • 使用printf(以避免隐式换行)
  •   
  • 添加空格以将printf与gsub输出分开
  •   

调整后的命令

awk '{ printf $2 " " $1 " "; gsub("/","",$2); print "/dev/mapper/"$2" "$2 }' /proc/mounts

<强> input.txt中

/dev/mapper/home /home blah blah blah blah

<强>输出

$ awk '{ printf $2 " " $1 " "; gsub("/","",$2); print "/dev/mapper/"$2" "$2 }' input.txt 
/home /dev/mapper/home /dev/mapper/home home
相关问题