sed和awk的练习
admin
2023-05-12 03:41:13
0

使用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/passwd
1 root
2 bin
3 daemon
4 adm
5 lp
6 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

相关内容

热门资讯

以军士兵集体丢掉武器抗命,大喊... 据凤凰卫视报道,以色列国防军一军事基地7月30日发生士兵抗命事件,约120名士兵抗议指挥官做法,将武...
蒋成华任商务部副部长 国务院任免国家工作人员。任命蒋成华为商务部副部长。免去蒋成华的商务部国际贸易谈判副代表职务。
伊朗驻华大使:在军事威胁下,不... 新华社北京7月31日电(记者刁慧琳) 伊朗驻华大使法兹里7月28日表示,伊美回到谈判桌的前提是美国必...
伊朗革命卫队在霍尔木兹海峡击中... 当地时间31日,伊朗伊斯兰革命卫队发布声明称,革命卫队海军当天在霍尔木兹海峡击中并扣留了两艘违反禁令...
美媒:特朗普,遇到了一个更强硬... 据《纽约时报》7月29日报道,就在特朗普总统看似放弃战事升级计划几天后,美国再次与伊朗交火。上周末,...
女子做气管镜时不幸身亡,丈夫称... 7月29日,西安刘先生反映妻子在当地医院做支气管镜检查时死亡,看监控时发现医生疑有违规操作。刘先生表...
全网“帮卖西瓜”,然后呢? 近日,河南部分地区西瓜滞销的消息在网上热度很高。很多地方也伸出援手:有景区收购千斤西瓜、免费赠予游客...
美媒:乌克兰袭击伊朗船只,险引... 据《纽约时报》7月28日报道,据伊朗和西方官员称,伊朗曾考虑攻击乌克兰的一个港口,以报复乌克兰对一艘...
20年里,他只画美女,用东方风... 迈进KIM在上海的工作室,迎面是一整墙的美女们。她们像是刚从一场时髦的沙龙里退场,或倚或立,眉宇间是...
Google在港推出AI代理G... 观点网讯:7月29日,Google在香港推出AI代理Gemini Spark,该代理可全天候在后台运...