Bash 仅解析/proc/mounts并替换一个字段
我正在寻找一种从/proc/mounts打印信息的方法,如下所示:Bash 仅解析/proc/mounts并替换一个字段,bash,awk,substitution,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/h
/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
有人有解决方案吗?fix
- 使用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
输出
/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
我在复制粘贴中遗漏了“hello”,在编辑我的问题时无法添加它,因此:hello here;)如果您包含问候语,可能会有人编辑您的问题以删除它。我们希望问题中的文本严格围绕主题。但感谢您的思考。