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
Linux下使用awk批量删除共享内存相关推荐
- linux下的进程间通信-管道及共享内存
进程间通信(IPC):操作系统为用户提供的集中进程间通信方式: 为什么要进程间通信? 进程之间具有独立性(每个进程有自己的虚拟地址空间),访问自己的虚拟地址,无法访问同一块区域,因此无法实现数据通信. ...
- Linux IPC实践(9) --System V共享内存
共享内存API #include <sys/ipc.h> #include <sys/shm.h>int shmget(key_t key, size_t size, int ...
- Linux(信号,进程间通信)共享内存,信号量,消息队列
信号(signal) 1.1 什么是信号? 信号是在软件层次上对中断机制的一种模拟,是一种异步通信方式 1.2 信号的来源 硬件 [1] 用户在终端按下某些键时,终端驱动程序会发送信号给前台进程 ct ...
- Linux系统中消息队列,共享内存、信号和线程的基本操作使用方法
Linux系统中消息队列,共享内存.信号和线程高级操作 第十一章 消息队列 10.1消息队列定义 10.2 消息队列特点 10.3 key值 10.4 创建消息队列 10.4.1 发送消息 10.4. ...
- Linux下通过rm -f删除大量文件时提示-bash: /bin/rm: Argument list too long的解决方法...
Linux下通过rm -f删除/var/spool/postfix/maildrop/中大量的小文件时提示: "-bash: /bin/rm: Argument list too long& ...
- linux进程间的通信(C): 共享内存
一.共享内存介绍 共享内存是三个IPC(Inter-Process Communication)机制中的一个. 它允许两个不相关的进程访问同一个逻辑内存. 共享内存是在两个正在进行的进程之间传递数据的 ...
- 删除共享内存_进程通信专题之 共享内存
什么是共享内存呢? 共享内存是被多个进程共享一部分物理内存,共享内存是进程间共享数据最快的办法,因为一个进程向共享内存中写了数据,那么共享的这个区域的所有进程就可以立刻看到这里的数据. 共享内存有什么 ...
- linux常用删除空文件夹,Linux基础 linux系统中的批量删除文件与空文件删除的命令介绍...
Linux基础教程linux系统中的批量删除文件与空文件删除的命令介绍 Linux资料下面删除文件或者目录命令rm(remove): Linux培训功能说明:删除文件或目录. 语 法:rm [-dfi ...
- 删除 linux的ln文件夹,linux下添加链接与删除链接(ln命令的用法)
添加链接使用ln命令 用法: #ln --help 用法:ln [选项]... 目标 [链接名] 或:ln [选项]... 目标... 目录 或:ln [选项]... --target-directo ...
最新文章
- 【error】RuntimeError: size mismatch与全连接fc层
- Linux下使用stat命令所显示出来的三个时间
- iOS UITableView的使用大全-备用
- P3175-[HAOI2015]按位或【min-max容斥,FWT】
- mysql表不存在_MySQL表不存在。但这确实(或者应该如此)
- KE之undefinded instruction问题记录
- exchange2010安装
- 三种Moran's I(空间自相关性) 之我见
- 迷宫算法总结(最短路径)
- kaggle电影数据分析报告
- mysql对象资源管理器在哪里_SQL server2008-对象资源管理器-数据库
- 蓝海创意云丨干货:V-Ray渲染后期处理雪中建筑效果图
- 微信公众平台模板消息颜色错位bug以及修复
- 记录下我磕磕碰碰的三个月找工作经历,offer拿到手软
- 主动学习(Active Learning) 概述、策略和不确定性度量
- 进阶篇:5.1)公差分析的总流程
- 深度学习-条件概率和似然估计
- 2018几大主流的UI/JS框架——前端框架
- 单片机电子时钟源代码
- 计算机网络相关的课程设计题目,计算机网络课程设计专业论文题目 计算机网络课程设计专业论文题目怎么拟...
热门文章
- 紧急!你用的是这20家 VPS 吗?它们疑似马上要携款跑路!
- 账户体系、支付服务设计第一版
- react native 0.50 源码解析 再出发 持续更新
- 2017四川省赛E题( Longest Increasing Subsequence)
- MySql 1067错误
- 应用虚拟化之规划篇二 项目流程规划
- android数字提示错误,从服务器接收数据时出现Android错误
- [Java] 蓝桥杯BASIC-29 基础练习 高精度加法
- 【C++】C++中substr的用法
- python函数中变量的作用域_Python中变量的作用域(variable scope)