awk介绍

简介: 设有文件grade.txt, $pg grade.txt M.Tansley    05/99    48311    Green    8    40    44J.Lulu        06/99    48317    green    9    24    26P.

设有文件grade.txt,

$pg grade.txt

M.Tansley    05/99    48311    Green    8    40    44
J.Lulu        06/99    48317    green    9    24    26
P.Bunny        02/99    48    Yellow    12    35    28
J.Troll        07/99    4842    Brown-3    12    26    26
L.Tansley    05/99    4712    Brown-2    12    30    28

显示其内容,并输入到delete_me_and_die中

awk '{print $0}' grade.txt | tee delete_me_and_die,$0表示打印所有域

打印1,4域

awk '{print $1,$4}' grade.txt

显示:

M.Tansley Green
J.Lulu green
P.Bunny Yellow
J.Troll Brown-3
L.Tansley Brown-2

打印报告头

awk 'BEGIN {print "Name         Belt\n------------------------"} {print $1"\t" $4}' grade.txt

打印信息尾

awk 'BEGIN {print "Name\n-------"} {print $1} END {"end"}' grade.txt

在第4域匹配含有字符串Brown的记录,~后紧跟正则表达式的模式

awk '{if ($4~/Brown/) print $0}' grade.txt

精确匹配第3域为48的记录,用==号

awk '$3=="48" {print $0}' grade.txt

不配陪,用!~

awk '$0 !~ /Brown/' grade.txt

查看第6域小于第7域的记录,并显示姓名 Try better at the next comp

awk '{if ($6<$7) print $0 "$1 Try better at the next comp"}' grade.txt

查看记录个数,NF为浏览的记录的域个数

awk 'END {print NR}' grade.txt

打印学生所有记录,并带有记录号

 awk '{print NF,NR,$0} END {print FILENAME}' grade.txt

相关文章
|
Web App开发 机器学习/深度学习 Linux
AWK常用技巧
1.1 介绍 awk其名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首个字母。实际上 AWK 的确拥有自己的语言: AWK 程序设计语言 , 三位创建者已将它正式定义为“样式扫描和处理语言”。
1489 0
|
网络协议 关系型数据库 MySQL
|
网络协议 关系型数据库 Shell
|
Perl Shell SDN
|
关系型数据库 MySQL Unix
|
Shell Perl Ubuntu
|
存储 Shell C语言