首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从Linux和Solaris上的挂载中提取NFS信息?

如何从Linux和Solaris上的挂载中提取NFS信息?
EN

Stack Overflow用户
提问于 2014-01-07 14:26:44
回答 2查看 444关注 0票数 3

我需要在Linux (RHEL 4/5)和Solaris (Solaris 10)系统上使用mount提取NFS挂载信息。由于这是SSH命令的一部分,因此提取需要在一行中进行。不幸的是,Linux和Solaris在行的不同部分显示挂载点:

Linux:

代码语言:javascript
运行
复制
10.0.0.1:/remote/export on /local/mountpoint otherstuff

Solaris:

代码语言:javascript
运行
复制
/local/mountpoint on 10.0.0.1:/remote/export otherstuff

我想得到以下空格分隔的输出

代码语言:javascript
运行
复制
10.0.0.1 /remote/export /local/mountpoint

我成功地用sed (Solaris 10 sed)单独完成了这个任务,但是我需要一个命令为这两个命令重新执行相同的输出。

Linux sed

代码语言:javascript
运行
复制
sed 's/\([^:]*\):\([^ ]*\)[^\/]*\([^ ]*\) .*/\1 \2 \3/'

Solaris sed

代码语言:javascript
运行
复制
sed 's/\([^ ]*\) *on *\([^:]*\):\([^ ]*\) .*/\2 \3 \1/'

解决方案:

我对accepted answer进行了调整,使其也可以使用DNS名称,而不仅仅是IP:

代码语言:javascript
运行
复制
awk -F'[: ]' '{if(/^\//)print $3,$4,$1;else print $1,$2,$4}'
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-07 14:38:53

awk可以帮你:

代码语言:javascript
运行
复制
 awk -F'[: ]' '{if(/^[0-9]/)print $1,$2,$4;else print $3,$4,$1}' 

请参阅此测试:

代码语言:javascript
运行
复制
kent$  cat f
10.0.0.1:/remote/export on /local/mountpoint otherstuff
/local/mountpoint on 10.0.0.1:/remote/export otherstuff

kent$  awk -F'[: ]' '{if(/^[0-9]/)print $1,$2,$4;else print $3,$4,$1}' f
10.0.0.1 /remote/export /local/mountpoint
10.0.0.1 /remote/export /local/mountpoint
票数 3
EN

Stack Overflow用户

发布于 2014-01-07 16:34:46

Kents解决方案的一个浅薄版本

代码语言:javascript
运行
复制
awk -F'[: ]' '{print /^[0-9]/?$1" "$2" "$4:$3" "$4" "$1}' file
10.0.0.1 /remote/export /local/mountpoint
10.0.0.1 /remote/export /local/mountpoint
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20974140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档