1cut

[root@oldboy oldboy]# ifconfig eth0|grep 'inet addr'|cut -d ":" -f2|cut -d " " -f1

10.0.0.162

2awk

[root@oldboy oldboy]# ifconfig eth0|grep 'inet addr'|awk -F ":" '{print $2}'|awk '{print $1}'

10.0.0.162

说明:这里的awk同上文的cut,但是比cut功能强大的多,-F ":" 中的-F表示指定分割符:,如果不加-F默认就是空格分割符。后面的写法是两个单引号中间是一定一对大括号,然后大括号里是print $n,这个n就是前面使用分割符后的第几个字段,如第一字段就是$1,第二个就是$2

 

ifconfig eth0 |awk -F '[ :]+' 'NR==2 {print $4}'

 

 

 

提示:本题NR是行号,分隔符+号匹配,[]里一个或多个任意一个分隔符,这里就是匹配一个或多个冒号或空格。

1awk-F 后面跟分隔符‘[空格:]+’,其中[空格:]多分隔符写法,意思是以空格或冒号做分隔,后面的"+"号是正则表达式,意思是匹配前面空格或冒号,两者之一的1个或1个以上。

2NR==2sed -n "2p",相当,意思都是选择第几行

#echo ---1:----2|awk -F '[-:]+' '{print $2}'     

 

1

 

#echo ---1:----2|awk -F '[-:]+' '{print $3}'     

 

2

 

#echo ---1:::::2|awk -F '[-:]+' '{print $3}'    

 

2

 

sed 拓展内容:

sed -i 's///g' oldboy.log

sed -i 's###g' oldboy.log

#观察特点:两边是引号,引号里面的两边分别为sg,中间是三个一样的字符/#

每个字符/#中间前面的间隔就是被替换的内容,后面的间隔就是替换后的内容。

sed 's///g' file #→单引号里两边是s(替换模式)和g(全局匹配替换) 中间是三个斜线,好记吧。

参数意义:

sed -i 's///g' oldboy.log

-i 表示修改文件内容。

gs联合使用时,表示对当前行全局匹配替换(与单独g意义不同)

s常说的查找并替换,用一个字符串替换成另一个

例子:方框▇三角▲互相替换例子

[oldboy@student ~]$ cat oldboy.log

[oldboy@student ~]$ sed -i 's///g' oldboy.log

[oldboy@student ~]$ cat oldboy.log

[oldboy@student ~]$ sed -i "s///g" oldboy.log

[oldboy@student ~]$ cat oldboy.log

[oldboy@student ~]$ sed -i 's###' oldboy.log

[oldboy@student ~]$ cat oldboy.log

[oldboy@student ~]$ sed -i 's###g' oldboy.log

sed是一个强大的流编辑器命令,在工作中表现出色。尤其是字符替换功能