Linux下使用awk批量删除共享内存
2015-07-10 19:34
555 查看
1.awk简介
awk 是一个强大的文本分析工具。sed 常常用于一整个行的处理,而 awk 则倾向于以空格和tab键为默认分隔符将每行切片成一个个域(也就是一列)来处理。awk适用于小型的数据处理.awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 awk 的 GNU 版本。
2. awk语法格式
awk ‘pattern1{action1} pattern2{action2} …’ filenameawk 后面接两个单引号并加上大括号 {} 来对匹配模式的数据进行处理。 awk 可以处理后面指定的文件,也可以通过管道命令”|”读取来自前个命令的标准输出。
3.工作流程
awk工作流程是这样的:读入有’\n’换行符分割的多条记录,然后将每一条记录按指定的域分隔符划分域,填充域,0则表示所有域, 0则表示所有域,1表示第一个域,$n表示第n个域。默认域分隔符是空格键和tab键。以last命令结合awk来演示awk一个简单的筛选输出。用 last 可以将登陆者的数据取出来,结果如下所示:
[root@lvlv]# last -n 4
root pts/1 192.168.1.100 Tue Feb 10 11:21 still logged in
root pts/1 192.168.1.100 Tue Feb 10 00:46 - 02:28 (01:41)
root pts/1 192.168.1.100 Mon Feb 9 11:41 - 18:30 (06:48)
dmtsai pts/1 192.168.1.100 Mon Feb 9 11:41 - 11:41 (00:00)
若我想要取出帐号与登陆者的 IP ,且帐号与 IP 之间以 [tab] 隔开,则会变成这样:
[root@lvlv]# last -n 4 | awk ‘{print $1 “\t” $3}’
root 192.168.1.100
root 192.168.1.100
root 192.168.1.100
dmtsai 192.168.1.100
4.利用awk批量删除共享内存
首先利用“ipcs –m”查看共享内存信息,然后再利用“ipcrm -m shmid”删除共享内存。利用awk进行批量删除共享内存的shell脚本如下:ipcs -m|awk ‘$2~/[0-9]+/{print $2}’|
while read s
do
ipcrm -m $s
done
结合上面对awk的介绍,应该不难看懂脚本。awk ‘$2~/[0-9]+/{print $2}’表示打印出只含阿拉伯数字的每行的第二列,即共享内存标识。awk中正则表达式由两个斜杠包围,即/REG/,正则表达式前加上代字号(波浪号)~表示与之匹配,!~表示不匹配。因此,$2~/[0-9]+/表示只含有阿拉伯数字组成的共享内存ID。
参考文献
[1http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858470.html相关文章推荐
- Hadoop2.7.0 以及相关linux知识(自己总结经验)
- ctrl+c,ctrl+d,ctrl+z在linux中意义
- linux c面向对象分析
- Linux如何上线和下线CPU
- linux程序设计——pipe调用在两进程之间通信(第十三章)
- 作为一个新人,怎样学习嵌入式Linux,(韦东山)
- centOS 6通过yum安装php-mssql以使php支持microsoft sql server连接
- LINUX下,我安装的MYSQL没有INNODB引擎
- LINUX下,我安装的MYSQL没有INNODB引擎,怎么加上
- 《LINUX设备驱动》学习总结(基础篇)
- Linux系统日常管理
- Busybox制作嵌入式Linux的文件系统
- 嵌入式Linux内核,文件系统的制作
- LINUX下相关硬件信息的查询
- linux下的select简直太奇葩了:1024限定的不只是监听的个数,还是文件描述符的最大值,注意,是值
- Linux~centos安装LAMP环境
- Linux下获取硬盘空间的大小
- 用U盘安装Kali linux系统
- linux根目录文件夹介绍
- linux内核cdev_init系列函数(字符设备的注册)