【问题标题】:Parse /proc/mounts and substitude only one field解析 /proc/mounts 并仅替换一个字段
【发布时间】:2015-08-02 07:10:13
【问题描述】:

我正在寻找一种从 /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

有人有解决办法吗?

【问题讨论】:

  • 我在复制粘贴中错过了“你好”,并且在编辑我的问题时无法添加它,所以:你好 ;)
  • 如果您包含问候语,那么有人可能会编辑您的问题以将其删除。我们更喜欢问题中的文本是严格的主题。不过谢谢你的想法。

标签: bash awk substitution


【解决方案1】:

修复

  • 使用 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

【讨论】:

    猜你喜欢
    • 2013-08-09
    • 1970-01-01
    • 2011-07-22
    • 2012-01-22
    • 2020-12-04
    • 2019-04-19
    • 1970-01-01
    • 2014-03-28
    • 1970-01-01
    相关资源
    最近更新 更多