网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

sed和awk的练习

使用sed打印出IP地址:

创新互联建站专注于宁蒗企业网站建设,自适应网站建设,购物商城网站建设。宁蒗网站建设公司,为宁蒗等地区提供建站服务。全流程按需开发,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务

[root@Srv02 ~]# ifconfig eth0 |grep Mask|sed 's/^.*dr://g'|sed 's/Bc.*$//g'
192.168.1.223
[root@Srv02 ~]# ifconfig eth0 |grep Mask|sed -n 's/^.*dr:\(.*\)Bc.*$/\1/gp'
192.168.1.223

 

awk打印IP:

[root@Srv02 ~]# ifconfig eth0 |grep Mask|awk '{print $2}'|awk -F: '{print $2}'
192.168.1.223

 

[root@Srv02 ~]# ifconfig eth0 |grep Mask|awk -F[:\] '{print $13}'
192.168.1.223

使用awk内部变量的方式指定分隔符:

[root@Srv02 ~]# ifconfig eth0|grep Mask|awk 'BEGIN{FS="[:\\ ]"}{print $13}'
192.168.1.223

打印/etc/passwd文件内,$1为weblogic和tomcat的两行(使用判断语句):

[root@Srv02 ~]# more /etc/passwd|awk -F: '{if ($1=="weblogic" || $1=="tomcat" ) print $0}'
weblogic:x:501:503::/home/weblogic:/bin/bash
tomcat:x:502:504::/home/tomcat:/bin/bash

这里使用~也是一样的效果:

[root@Srv02 ~]# more /etc/passwd|awk -F: '{if ($1~"weblogic" || $1~"tomcat" ) print $0}'
weblogic:x:501:503::/home/weblogic:/bin/bash
tomcat:x:502:504::/home/tomcat:/bin/bash

如果$1为变量name的值,就整行输出:

[root@Srv02 ~]# more /etc/passwd|awk -F: 'BEGIN{name="oracle"}{if($1~name)print $0}'
oracle:x:500:500::/home/oracle:/bin/bash

awk内部变量的介绍:

NF:表示有多少列。

$NF:表示最后一列。

NR:表示行号。

ORS:输出记录分割符

OFS:输出字段分割符

RS: 记录分割符

[root@Srv02 ~]# tail -4 /etc/passwd
oracle:x:500:500::/home/oracle:/bin/bash
weblogic:x:501:503::/home/weblogic:/bin/bash
tomcat:x:502:504::/home/tomcat:/bin/bash
nx:x:102:158::/usr/NX/home/nx:/usr/NX/bin/nxserver[root@Srv02 ~]# tail -4 /etc/passwd | awk '{print NF}'
1
1
1
1
[root@Srv02 ~]# tail -4 /etc/passwd | awk -F: '{print NF}'
7
7
7
7
[root@Srv02 ~]# tail -4 /etc/passwd | awk -F: '{print $NF}'
/bin/bash/bin/bash/bin/bash/usr/NX/bin/nxserver

使用awk打印端口号:

[root@Srv02 ~]# netstat -ntl |awk '{if($4~"[0-9]$") print $4}'|awk -F: '{print $NF}'
8001
8005
8009
33801
.....

使打印输出显示行号:

[root@Srv02 ~]# awk -F: '{print NR,$1}' /etc/passwd1 root2 bin3 daemon4 adm5 lp6 sync

显示$1为oracle的这一行的行号:

[root@Srv02 ~]# more /etc/passwd |awk -F: '{if ($1~"oracle") print NR}'
39

输出时以###作为字段分隔符:

[root@Srv02 ~]# tail -4 /etc/passwd |awk -F: 'BEGIN {OFS="###"}{print $1,$7,$3}'
oracle###/bin/bash###500
weblogic###/bin/bash###501
tomcat###/bin/bash###502
nx###/usr/NX/bin/nxserver###102

文章标题:sed和awk的练习
转载注明:http://bjjierui.cn/article/gdcoge.html

其他资讯