LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 793|回复: 11

如何取resolv.conf中的IP?

[复制链接]
发表于 2003-11-11 22:24:31 | 显示全部楼层 |阅读模式
在resolv.conf中格式是
nameserver  192.168.0.1
nameserver  192.168.0.2
中间可能是空格,也可能是tab键,也可能是这两个键的组合,如何才能取出这个IP,并且两个IP分别符给两个不同的变量?
 楼主| 发表于 2003-11-11 22:56:37 | 显示全部楼层
找到办法了,修改了别人的,呵呵
echo `cat /etc/resolv.conf | grep "nameserver" | awk '{print $2}' | grep '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'` |
cut -d' ' -f 1
 楼主| 发表于 2003-11-12 09:41:34 | 显示全部楼层
不过有没有不用awk的方法?
发表于 2003-11-12 10:22:10 | 显示全部楼层
看了你的命令,感觉你对命令和管道都不熟悉,不过awk的确是能够很好的完成。

awk  -F"[[:space:]+]"  '{print $2}'  /etc/resolv.conf
发表于 2003-11-12 14:13:46 | 显示全部楼层
最初由 cx6445 发表
看了你的命令,感觉你对命令和管道都不熟悉,不过awk的确是能够很好的完成。

awk  -F"[[:space:]+]"  '{print $2}'  /etc/resolv.conf


grep "nameserver" < /etc/resolv.conf | awk -F"[[:space:]+]" '{print $2}'

在resolv.conf中格式是
nameserver 192.168.0.1
nameserver 192.168.0.2
但是还可能包含这样的行
search linuxsir.cn
发表于 2003-11-12 14:53:34 | 显示全部楼层
呵呵,这样说来也不妥呀,还可能有这样的行
search nameserver.linuxsir.cn
应该这样才行吧
grep ^nameserver /etc/resolv.conf | awk -F"[[:space:]+]" '{print $2}'
发表于 2003-11-12 15:06:40 | 显示全部楼层
说了这么久,你们是用什么shell:ask :ask
发表于 2003-11-12 15:08:41 | 显示全部楼层
awk默认的分隔符是空格和TAB,所以没有必要用-F选项.
  1. cat /etc/resolv.conf|awk '$1=="nameserver"{print $2}'
复制代码
发表于 2003-11-12 15:09:34 | 显示全部楼层
最初由 cx6445 发表
呵呵,这样说来也不妥呀,还可能有这样的行
search nameserver.linuxsir.cn
应该这样才行吧
grep ^nameserver /etc/resolv.conf | awk -F"[[:space:]+]" '{print $2}'

That's the final version.
 楼主| 发表于 2003-11-12 15:24:19 | 显示全部楼层
都要用到awk啊!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表