Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 仅解析/proc/mounts并替换一个字段_Bash_Awk_Substitution - Fatal编程技术网

Bash 仅解析/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

我正在寻找一种从/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
有人有解决方案吗?

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;)如果您包含问候语,可能会有人编辑您的问题以删除它。我们希望问题中的文本严格围绕主题。但感谢您的思考。