博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
awk基本用法
阅读量:4958 次
发布时间:2019-06-12

本文共 1274 字,大约阅读时间需要 4 分钟。

ls -l >> list.txt

输出第一列

awk '{print $1}' list.txt

输出第二列

awk '{printf %d\n,$2}' list.txt

输出第二行第一列

awk 'NR==2 {print $1}' list.txt

if语句

awk '{if(NR<=2){print $0}}' list.txt

Awk完整形式  

awk 'BEGIN{print"start"} pattern{print} END{print "end"}'

其中BEGIN和END是可选模块, pattern里面每读一行执行一次,BEGIN在加载数据前执行,END在加载数据完成后执行。单引号是为了将awk命令与linux命令区分开。

Eg、输出字段数(NF->number of fileds)和行数(NR->numberof rows)

awk 'END{print NF,NR}'  //在读入每一行的时,awk会将NR更新为对应的行号

  1. 提前遍历全文
  2. awk 'BEGIN{while(getline<"file"){x+=$2+$3;i++};y=x/i}{if($2+$3>y)z++}END{print z}' file

拆分

ifconfig |awk '{if(NR==2){split($2,a,":");print a[2]}}'

统计次数

cat test
123.122.123.12 12121212
121.2332.121.11 232323
255.255.255.255 21321
123.122.123.12 12121212
123.122.123.12 1212121er2
123.122.123.12 12121212eer
123.122.123.12 12121212ere
255.255.255.255 21321
121.2332.121.11 232323
255.255.255.255 21321
命令
awk '{name[$1]++ }; END {for (count in name) print count,name[count]}' test|sort

取字符前几位

awk脚本形式

eg:求学生平均成绩

zhangsan 80

lisi 81.5
wangwu 93
zhangsan 85
lisi 88
wangwu 97
zhangsan 90
lisi 92
wangwu 88

#!/bin/awk -fBEGIN{print "start"}{a[$1]+=$2b[$1]++}END{ for(i in b){ print i,a[i]/b[i] } print "end"}

 

$0表示整行

输出前3列

ps -aux|grep java|awk '{i=1;while(i<3){printf $i;i=i+1;}print $i}'

转载于:https://www.cnblogs.com/yan456jie/p/5369403.html

你可能感兴趣的文章
BZOJ 1251: 序列终结者
查看>>
ArcGIS API for JavaScript 4.2学习笔记[18] 搜索小部件
查看>>
callback in C
查看>>
Android学习笔记
查看>>
Win32隐藏输出console窗口
查看>>
英语----不可小看的冠词
查看>>
Tomcat 安装以及配置
查看>>
02. Pandas 1|数据结构Series、Dataframe
查看>>
CSS优化技巧7则
查看>>
数据库常见面试题(1)
查看>>
美图秀秀的效果
查看>>
开发进度4
查看>>
HDOJ_2754 素数种类统计
查看>>
Process 开启子进程 的两种方式、join控制子进程、守护进程
查看>>
jQuery之防止冒泡事件,冒泡事件就是点击子节点,会向上触发父节点,祖先节点的点击事件。...
查看>>
Swift静态方法
查看>>
学习周总结
查看>>
内存分析工具 MAT 的使用
查看>>
linux基础命令-文件查看类命令cat/tac/more/less/tail/head
查看>>
Java 小型学生管理系统心得
查看>>