分享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)以前的许多致命错误
随机推荐
- 正则表达式——详细讲解平衡组
- 详解使用Xcode7的Instruments检测解决iOS内存泄露(最新)
- java 二分法详解几种实现方法
- javascript类型系统_正则表达式RegExp类型详解
- 简单易懂的天气插件(代码分享)
- 127.0.0.1无法访问,没有权限: GetObject
- 浅析string类字符串和C风格字符串之间的区别
- 数据结构之伸展树详解
- Android调用堆栈跟踪实例分析
- Android中的SpannableString与SpannableStringBuilder详解
- 后台实时分流文件的shell脚本
- Python使用Supervisor来管理进程的方法
- Python中is与==判断的区别
- sqlserver 手工实现差异备份的步骤
- centos7.3 安装mysql5.7.18的详细教程
- jQuery获取与设置iframe高度的方法
- Java Collections.sort()实现List排序的默认方法和自定义方法
- 详解Mybatis分页插件 - 示例代码
- Android 系统net和wap接入点的区别
- 利用HBuilder打包前端开发webapp为apk的方法