好记性不如烂笔头(awk简单使用)
来源:互联网 发布:一年级学拼音软件 编辑:程序博客网 时间:2024/06/06 00:54
awk其实可以看做是在shell中运行的独立程序,shell中获取的字符数据传入awk中做进一步处理:
如:ls -all | awk ‘{print $1}’ 表示对当前目录使用了ls -all,该linux命令会显示n行的信息,这些数据会传入awk中,然后每行都会执行一次{print $1}内容。这就是awk的基本工作原理,更详细的你查书吧,还有些BEGIN啥的都可以省略。
实际例子1:(删除linux当前的所有队列)
ipcs -q | awk '/0x/ {print "ipcrm -q ",$2}' | sh
其中的‘/0x/’表示如果该行中有0x字符才会运行一次awk的行处理程序。
接着的{print "ipcrm -q ",$2}' | sh,原本只有{print "ipcrm -q ",$2}' 就是输出ipcrm -q 加上每行的$2(第二个字符串字段内容,所谓字段就是空格隔开的字符串),现在接了|sh,表示ipcrm -q 加上每行的$2(第二个字符串字段内容),这些内容再次当做脚本执行一次,这里具体也就删除了一个队列(如ipcrm -q 0x123456)。
实际例子2:(当目标文件/opt/log_data.txt的大小超过60000byte时,删除)
ls -all /opt/log_data.txt | awk '{if($5 >= 60000) print "rm -rf /opt/log_data.txt"}' | sh
其中awk的行变量$5是文件的大小,awk行代码的($5 >= 60000)这么比较,是比较的字符串还是数值大小,我也不知道,反正这么比较目前的结果的确是在比较数值的大小,最终一样将awk的print内容返回脚本执行,即|sh
后期有这么几个地方需要补充:
1:shell变量如何进入awk,awk中的变量如何传回shell
2:awk的行条件过滤还是不错的,记录一些
3:追加|sh的意义,我看到还有些shell中有追加|read xxx
- 好记性不如烂笔头(awk简单使用)
- 好记性不如烂笔头(svn客户端使用)
- 好记性不如烂笔头(一)
- 好记性不如烂笔头(三)
- 好记性不如烂笔头
- 好记性不如烂笔头!!
- 好记性不如烂笔头
- 好记性不如烂笔头
- 好记性不如烂笔头
- 好记性不如烂笔头
- 好记性不如烂笔头
- 好记性不如烂笔头
- 好记性不如烂笔头
- 好记性不如烂笔头
- 好记性不如烂笔头
- 好记性不如烂笔头
- 好记性不如烂笔头
- 好记性不如烂笔头
- Android中AS使用svn忽略文件的问题。
- 计算机可以做推理逻辑吗?
- Fragment add hide show方式
- LostYouth1993的第一篇博客
- Action接口
- 好记性不如烂笔头(awk简单使用)
- IE8下Jquery获取select选中的值的问题
- Android Studio Access to '/svn/Tech/!svn/act/e53c1e70-3832-884e-8bd6-c46dc31f049a' forbidden问题解决方法
- 安卓7.0 Uri.fromFile(file)报错随笔
- ACM:H: UC Browser
- Win7使用金山毒霸提示“安装引擎失败,不支持此接口”的解决方法
- 没有人期待你必须优秀,焦虑是你加给自己的
- Java类变量的初始化时机
- web service技术之 soap