@ifconfig eth0|awk -F "[ :]+" 'NR==2{print $4 "/" $NF}'中"[ :]+" 是什么意思?@
2011-09-26 17:09
741 查看
今天在群里面有人问到:ifconfig eth0|awk -F "[ :]+" 'NR==2{print $4 "/" $NF}',我执行了一下
结果为192.168.55.229/255.255.255.0
思考:
假如我们不考虑网络上的一些知识,纯粹是为了测试,想让他们中间的/变成\【注意他在shell中可是个转义字符哦,亲~】,那么我们来测试一下
[root@Test233 deploy]# ifconfig eth0|awk -F '[: ]+' 'NR==2{print $4 "\" $NF}'
awk: NR==2{print $4 "\" $NF}
awk: ^ unterminated string
看吧,报错了,没错,就是因为他是个转义字符,需要特殊处理~
正确的写法:
ifconfig eth0|awk -F '[: ]+' 'NR==2{print $4 "\\" $NF}'
但是现在有一个问题:那么[ :]+到底是什么意思呢?经过百度和群组的讨论,我们最终达成一致:
[ :]+这个是正则表达式,+表示一个或多个,这里就表示一个或多个空格或冒号
ps:
1。内建变量FS保存输入域分隔符的值,默认是空格或tab。我们可以通过-F命令行选项修改FS的值。如$ awk
-F: '{print $1,$5}' test将打印以冒号为分隔符的第一,第五列的内容。
2。可以同时使用多个域分隔符,这时应该把分隔符写成放到方括号中,如$awk -F'[ :\t]' '{print $1,$3}' test,表示以空格、冒号和tab作为分隔符。
下面我们来举个例子:
[root@master ~]# echo "inet addr:192.168.55.229 Bcast:192.168.55.255 Mask:255.255.255.0"|awk -F"[ :]" '{print $3}'
192.168.55.229
[root@master ~]#
[root@master ~]# echo "inet addr:192.168.55.229 Bcast:192.168.55.255 Mask:255.255.255.0"|awk -F"[ :]"'{print $2}'
addr
[root@master ~]#
看另外一个例子:
cat temp.file3 |grep "app[^-]"这个是只匹配app,中括号的^表示的是非的意思~
结果为192.168.55.229/255.255.255.0
思考:
假如我们不考虑网络上的一些知识,纯粹是为了测试,想让他们中间的/变成\【注意他在shell中可是个转义字符哦,亲~】,那么我们来测试一下
[root@Test233 deploy]# ifconfig eth0|awk -F '[: ]+' 'NR==2{print $4 "\" $NF}'
awk: NR==2{print $4 "\" $NF}
awk: ^ unterminated string
看吧,报错了,没错,就是因为他是个转义字符,需要特殊处理~
正确的写法:
ifconfig eth0|awk -F '[: ]+' 'NR==2{print $4 "\\" $NF}'
但是现在有一个问题:那么[ :]+到底是什么意思呢?经过百度和群组的讨论,我们最终达成一致:
[ :]+这个是正则表达式,+表示一个或多个,这里就表示一个或多个空格或冒号
ps:
1。内建变量FS保存输入域分隔符的值,默认是空格或tab。我们可以通过-F命令行选项修改FS的值。如$ awk
-F: '{print $1,$5}' test将打印以冒号为分隔符的第一,第五列的内容。
2。可以同时使用多个域分隔符,这时应该把分隔符写成放到方括号中,如$awk -F'[ :\t]' '{print $1,$3}' test,表示以空格、冒号和tab作为分隔符。
下面我们来举个例子:
[root@master ~]# echo "inet addr:192.168.55.229 Bcast:192.168.55.255 Mask:255.255.255.0"|awk -F"[ :]" '{print $3}'
192.168.55.229
[root@master ~]#
[root@master ~]# echo "inet addr:192.168.55.229 Bcast:192.168.55.255 Mask:255.255.255.0"|awk -F"[ :]"'{print $2}'
addr
[root@master ~]#
看另外一个例子:
cat temp.file3 |grep "app[^-]"这个是只匹配app,中括号的^表示的是非的意思~
相关文章推荐
- @ifconfig eth0|awk -F "[ :]+" 'NR==2{print $4 "/" $NF}'中"[ :]+" 是什么意思?@
- awk -F "" '{print $NF}'
- 关于正则表达式 g,m 参数的总结,为了回答“正则表达式(/[^0-9]/g,'')中的"/g"是什么意思?”
- 关于正则表达式 g,m 参数的总结,为了回答“正则表达式(/[^0-9]/g,'')中的"/g"是什么意思?”
- 关于正则表达式 g,m 参数的总结,为了回答“正则表达式(/[^0-9]/g,'')中的"/g"是什么意思?”
- 关于正则表达式 g,m 参数的总结,为了回答“正则表达式(/[^0-9]/g,'')中的"/g"是什么意思?”
- “正则表达式(/[^0-9]/g,'')中的"/g"是什么意思”
- 关于正则表达式 g,m 参数的总结,为了回答“正则表达式(/[^0-9]/g,'')中的"/g"是什么意思?”
- javascript 的 "!function" 是什么意思?
- android 编程中"<<"是什么意思?有什么作用?
- shell中行到一个月的最后一天 echo $(cal)|awk '{print$(NF)}'
- C++中extern"C"深层含义&&#ifdef __cplusplus 倒底是什么意思?
- xmlns:tools="http://schemas.android.com/tools"以及tools:context=".ConfActivity"是什么意思
- 计算机中的"域"到底是什么意思?有什么用出?我们为什么要加入"域"?域"和"工作组"有什么分别呢?
- 美国俚语:Have the ball at one&#39;s feet什么意思?_
- 对于C语言的输出格式("/n%2d,%2.1f,%2.11f)是什么意思
- cat access.2012010.log | awk '{a[$1]++} END {for(b in a) print b"\t"a[b]}' | sort -k2 -r | head -n 5
- java程序中加入@SuppressWarnings("serial")是什么意思?
- php $a="24 five 6"+6是什么意思啊
- C#关于数组Console.Write("{0,4:d}",c[i,j]);是什么意思