我需要使用提取 NFS 挂载信息mount
在 Linux (RHEL 4/5) 和 Solaris (Solaris 10) 系统上。由于这是 SSH 命令的一部分,因此提取需要在一行中进行。不幸的是,Linux 和 Solaris 在该行的不同部分显示安装点:
Linux:
10.0.0.1:/remote/export on /local/mountpoint otherstuff
Solaris:
/local/mountpoint on 10.0.0.1:/remote/export otherstuff
我想得到以下空格分隔的输出
10.0.0.1 /remote/export /local/mountpoint
我设法单独做到了sed
(索拉里斯 10sed
),但我需要一个命令为两者返回相同的输出。
Linux sed
:
sed 's/\([^:]*\):\([^ ]*\)[^\/]*\([^ ]*\) .*/\1 \2 \3/'
Solaris sed
:
sed 's/\([^ ]*\) *on *\([^:]*\):\([^ ]*\) .*/\2 \3 \1/'
解决方案:
我改编了接受的答案 https://stackoverflow.com/a/20974402/1128705不仅可以使用 IP,还可以使用 DNS 名称:
awk -F'[: ]' '{if(/^\//)print $3,$4,$1;else print $1,$2,$4}'