awk 'BEGIN{ commands } pattern{ commands } END{ commands }'ls -lh | awk '{print $1}'netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}'  #计算访问数统计

在这里awk 后面没有BEGIN和END,跟着的是pattern,也就是每一行都会经过这个命令,在awk中$n,表示第几列,在这里表示打印每一行的第一列。
$0 当前记录(这个变量中存放着整个行的内容)
$1~$n 当前记录的第n个字段,字段间由FS分隔
FS 输入字段分隔符 默认是空格或Tab
NF 当前记录中的字段个数,就是有多少列
NR 已经读出的记录数,就是行号,从1开始,如果有多个文件话,这个值也是不断累加中。
FNR 当前记录数,与NR不同的是,这个值会是各个文件自己的行号
RS 输入的记录分隔符, 默认为换行符
OFS 输出字段分隔符, 默认也是空格
ORS 输出的记录分隔符,默认为换行符
FILENAME 当前输入文件的名字

awk '{for(i=N+1;i<=NF;i++)printf $i "  ";printf"\n"}' file   #打印n列后面的所有列awk '{$1="";print $0}'  #打印除每一列的所有列  awk '{$NF="" ;print $0}'      #显示最后一列

%c:显示字符的ASCII码

%d, %i:显示十进制整数

%e, %E:显示科学计数法数值

%f:显示为浮点数

%g, %G:以科学计数法或浮点形式显示数值

%s:显示字符串

%u:无符号整数

%%:显示%自身
#[.#] 第一个数字控制显示的宽度;第二个#表示小数点后精度,%3.1f

  • 左对齐(默认右对齐) %-15s

  • 显示数值的正负符号 %+d

哪个在前先算哪个

操作符

算术操作符:

x+y, x-y, x*y, x/y, x^y, x%y

  • x:转换为负数

+x:将字符串转换为数值

字符串操作符:没有符号的操作符,字符串连接

赋值操作符:

=, +=, -=, *=, /=, %=, ^=,++, --

下面两语句有何不同

awk ‘BEGIN{i=0;print ++i,i}’awk ‘BEGIN{i=0;print i++,i}’操作符

比较操作符:

==, !=, >, >=, <, <=
~:左边是否和右边匹配
!~:是否不匹配

awk '$0 !~ /root/‘ /etc/passwdawk -F: '$0 ~ /root/{print $1}‘ /etc/passwd

更多相关文章

  1. java8中的一个骚操作-方法引用(使代码看起来很高大上)
  2. 整理了一套操作系统常见的面试题,不管你是面试大厂还是小厂都足够
  3. mysql从入门到优化(3)事务的基本操作
  4. mysql从入门到优化(1)基本操作上
  5. mysql从入门到优化(4)视图的基本操作
  6. mysql从入门到优化(2)数据的增删改查操作总结
  7. 2.20 从本质上理解虚拟机快照以及操作演示
  8. Java中使用Jedis操作Redis

随机推荐

  1. Android中Intent对应的category列表大全
  2. Android(安卓)Selector和Shape的用法
  3. Linearlayout与Relativelayout布局回顾 .
  4. 通过Android(安卓)Binder拓展系统服务
  5. Android API中文文档(111) —— MailTo
  6. 深入讲解WebView——下
  7. Android Activity动画属性简介
  8. js与Android和iOS的webview交互,兼容的写
  9. android:layout_marginLeft等的简单用法
  10. 【NFC在android中的应用API】