Linux下使用awk批量删除共享内存

1.awk简介

awk 是一个强大的文本分析工具。sed 常常用于一整个行的处理,而 awk 则倾向于以空格和tab键为默认分隔符将每行切片成一个个域(也就是一列)来处理。awk适用于小型的数据处理.

awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 awk 的 GNU 版本。

2. awk语法格式

awk ‘pattern1{action1} pattern2{action2} …’ filename

awk 后面接两个单引号并加上大括号 {} 来对匹配模式的数据进行处理。 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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

Python黑客学习笔记:从HelloWorld到编写PoC(上)

本系列文章适合CS在读学生和万年工具党,本文会在英文原文的基础上做些修改,并适当增加些解释说明。 ? 本篇包含原文的前几部分: 0x0 – Getting St...

29210
来自专栏aCloudDeveloper

总结:常用的通用数据处理指令

作者:bakari  时间:2012.4.21 1、 操作数类型 Imm立即操作数 Reg寄存器操作数 Mem内存操作数 2、 操作数寻址方式 立即数寻址 寄存...

2028
来自专栏JetpropelledSnake

Python入门之用Python统计代码行

Pycharm每天都要写很多代码,如何统计每天的代码行数呢?作为一个目标十万行的coder,要想想办法! 题目:有个目录,里面是你自己写过的程序,统计一下你写过...

3548
来自专栏DT乱“码”

jquery中ajax参数说明

jquery中的ajax方法参数总是记不住,这里记录一下。 1.url:  要求为String类型的参数,(默认为当前页地址)发送请求的地址。 2.type:...

2218
来自专栏北京马哥教育

Linux Bash脚本15分钟进阶教程

这里的技术技巧最初是来自谷歌的“Testing on the Toilet” (TOTT)。这里是一个修订和扩增版本。

730
来自专栏我爱编程

Day20内建模块itertools&urllib

itertools Python的内建模块itertools提供了非常有用的用于操作迭代对象的函数。 首先,我们看看itertools提供的几个“无限”迭代器...

3439
来自专栏游戏杂谈

Node.js文件编码格式的转换

项目很多 lua 文件不是 utf-8格式,使用 EditPlus 查看的时候,显示为ASCII。还有的是带BOM的,带BOM倒好处理,之前写过,有一定规律。

1884
来自专栏CaiRui

Bash Shell 小试牛刀

一、终端打印 [root@cai ~]# echo welcome to bash! welcome to bash! [cairui@cai ~]$ echo...

1856
来自专栏dotnet & java

datatables 配套bootstrap样式使用小结(2) ajax篇

上一篇是介绍一下基本的用法,基本的原理是取出所有的数据,然后调用$.datatables(option)方法格式化,这种方法显然不太科学,所以ajax方式是必须...

1031
来自专栏python学习之旅

Python+Selenium笔记(十三):Page Object设计模式

(一) 前言 简单的说就是分为2层,页面class 和测试class。 页面class:分为父类和子类(子类指具体的页面,每一个页面都创建一个类),父类中定义公...

4437

扫码关注云+社区

领取腾讯云代金券