分享awk变量$0的妙用
#!/bin/bash
for ip in `cat ip.lst`
do
./ssh.exp $ip > /dev/null 2&>1
done
NK=`awk 'BEGIN{bs=4000000}/access/{if($1>bs){nk=NR-1;print nk}}' exp.log`
for nnk in $NK
do
awk -F"[@|']" 'NR=='"$nnk"' {print $2}' exp.log
done
然后又发现awk中$0的鬼怪。于是进一步简化成了这个样子:
#!/bin/bash
for ip in
`cat ip.lst`
do
./ssh.exp $ip > /dev/null 2&>1
done
awk 'BEGIN{bs=4000000}/access/{if($1>bs)print x};{x=$0}' exp.log|awk -F"[@|']" '{print $2}'
终于算是圆了自己用一句话搞定它的梦。yeah~ 不过对这个原理还是不很明白。因为print x;x=$0出来是上一行,但print $0则是本行。why? 网上对打印前一行还提出另一个写法,就看的更莫名其妙了:
awk '/regex/{print (x==""?"":x)};{x=$0}' $1
而打印后一行是这样:
awk '/regex/{getline;print}' $1
不过这毕竟是恰好上下行而已,如果是要前几行的,还是要靠NR运算了。
因为awk的流式处理,print x;x=$0,这个时候的x要等到下一行时才print出来。
相关推荐
-
分享awk变量$0的妙用
脚本内容: 复制代码 代码如下: #!/bin/bashfor ip in `cat ip.lst`do./ssh.exp $ip > /dev/null 2&>1doneNK=`awk 'BEGIN{bs=4000000}/access/{if($1>bs){nk=NR-1;print nk}}' exp.log`for nnk in $NKdoawk -F"[@|']" 'NR=='"$nnk"' {print $2}' exp.log
-
javascript void(0)的妙用
void 操作符用法格式如下: 1. javascript:void (expression) 2. javascript:void expression expression是一个要计算的 JavaScript 标准的表达式.表达式外侧的圆括号是可选的,但是写上去是一个好习惯.我们可以使用 void 操作符指定超级链接.表达式会被计算但是不会在当前文档处装入任何内容.面的代码创建了一个超级链接,当用户点击以后不会发生任何事.当用户点击链接时,void(0) 计算为 0,但在 JavaScrip
-
do...while(0)的妙用详细解析
在C++中,有三种类型的循环语句:for, while, 和do...while, 但是在一般应用中作循环时, 我们可能用for和while要多一些,do...while相对不受重视.但是我发现了do...while的一些十分聪明的用法,不是用来做循环,而是用作其他来提高代码的健壮性. 1. do...while(0)消除goto语句通常,如果在一个函数中开始要分配一些资源,然后在中途执行过程中如果遇到错误则退出函数,当然,退出前先释放资源,我们的代码可能是这样:version 1 复制代码 代
-
vue2.0实现导航菜单切换效果
本文实例为大家分享了vue2.0实现导航菜单切换的具体代码,供大家参考,具体内容如下 css *{ margin:0; padding: 0; } ul li{ list-style: none; } .navul{ margin:100px auto 20px; overflow: hidden; } .navul li{ background-color: #5597b4; padding:18px 30px; float:left; color: #fff; font-size: 18px
-
vue2.0多条件搜索组件使用详解
本文为大家分享了vue2.0多条件搜索组件的实现方法,供大家参考,具体内容如下 搜索条件为死数据,通过select下拉,选取多个条件:同时可点击加号增加搜索条件,点击减号减少搜索条件: templete <template> <div class="retrievalmian"> <div class="retrievaltitle"> <a class="btn-default tabbtn" @cli
-
基于Vue2.0的分页组件
本文实例为大家分享了Vue2.0分页组件的具体实现代码,供大家参考,具体内容如下 整个示例打包了,有需要的可以下载,有不对的地方欢迎指出:vue分页组件 组件部分代码: Vue.component('zpagenav', { template: `<nav class="zpagenav">` + `<ul class="page-ul">` + `<li v-bind:key="index" v-for="
-
perl 采集入库脚本分享
#!/usr/bin/perl -w use DBI; use POSIX qw(strftime); my $dbh = DBI->connect("DBI:mysql:shencan:111.1.32.153:3306″,"shencan","shencan"); #my $sql = "select * from shencan.LVS"; #my $sth = $dbh->prepare($sql); #$sth-&
-
swift 3.0 实现短信验证码倒计时功能
下面一段代码给大家分享swift 3.0 实现短信验证码倒计时功能,具体实例代码如下所示: class TCCountDown { private var countdownTimer: Timer? var codeBtn = UIButton() private var remainingSeconds: Int = 0 { willSet { codeBtn.setTitle("重新获取\(newValue)秒", for: .normal) if newValue <=
-
Swift3.0仿支付宝二维码扫描效果
本文实例为大家分享了Swift3.0二维码扫描的具体代码,供大家参考,具体内容如下 关键代码 import AVFoundation //获取摄像设备 let device = AVCaptureDevice.defaultDevice(withMediaType: AVMediaTypeVideo) do { //创建输入,输出流 let input = try AVCaptureDeviceInput.init(device: device) let output = AVCaptureMe
-
PHP7.0安装笔记整理
2015年6月11日,PHP官网发布消息,正式公开发布PHP7第一版的alpha版本. PHP7特性: PHP 7.0.0 Alpha 1使用新版的ZendEngine引擎,带来了许多新的特性,以下是不完全列表: (1)性能提升:PHP7比PHP5.6性能提升了两倍. Improved performance: PHP 7 is up to twice as fast as PHP 5.6 (2)全面一致的64位支持. Consistent 64-bit support (3)以前的许多致命错误
随机推荐
- 分享使用AngularJS创建应用的5个框架
- 用vbs列出注册表中 Run 项中的所有项目
- 认识延迟时间为0的setTimeout
- BootStrap Typeahead自动补全插件实例代码
- bootstrap table 多选框分页保留示例代码
- PHP中类的自动加载的方法
- python中的reduce内建函数使用方法指南
- C中实现矩阵乘法的一种高效的方法
- PHP 中的批处理的实现
- js 浏览本地文件夹系统示例代码
- SSI指令
- Shell实用技巧:快速去除字符串中的空格
- Linux下的tar压缩解压缩命令详解(小结)
- 利用AjaxControlToolkit实现百度搜索时的下拉列表提示详细步骤
- 让Editplus成为强大的PHP编辑器
- Bootstrap框架动态生成Web页面文章内目录的方法
- 基于jquery的获取浏览器窗口大小的代码
- 解析John Resig Simple JavaScript Inheritance代码
- C#中string与byte[]的转换帮助类-.NET教程,C#语言
- Spring之IOC详解