2019-07-25

Awk 命令

环境配置 :

cat > reg.txt << e
> cat reg.txt
> Zhang  Dandan    41117397    :250:100:175
> Zhang  Xiaoyu    390320151   :155:90:201
> Meng   Feixue    80042789    :250:60:50
> Wu     Waiwai    70271111    :250:80:75
> Liu    Bingbing  41117483    :250:100:175
> Wang   Xiaoai    3515064655  :50:95:135
> Zi     Gege      1986787350  :250:168:200
> Li     Youjiu    918391635   :175:75:300
> Lao    Nanhai    918391635   :250:100:175
> e

语法结构 :

awk [参数] '模式{动作}' 文件信息
sed [参数] '条件 指令'  文件信息

Awk 命令适用范围 :

  1. 处理文件信息 :

    1. 文本文件信息 :
    2. 日志文件信息 :
    3. 配置文件信息 :
  2. 处理文件方式 :

    1. 排除信息 :
    2. 查询信息 :
    3. 统计信息 :
    4. 替换信息 :
    5. 对文件列进行处理 :

Awk 命令实际操作 :

查找信息 :

awk '$2~/Xiaoyu/{print $1,$3}' reg.txt 
查看文件第二列含有Xiaoyu字符的第一和第三列信息

处理分割符 : (-F)

awk -F"[: ]+"'$1~/Zhang/{print $1$2,$5}' reg.txt
查找第一列有 Zhang 字符串且以冒号和空格分割后的第125列信息显示

列对其 :

column -t   将文件内容列对齐

显示所有ID号码最后一位数字是1或5的人名 :

awk '$3~/[15]$/{print $1$2}' reg.txt|column -t
awk '$3~/1$|5$/{print $1$2}' reg.txt|column -t

awk 取反操作 :

awk '$1!~/^O/{print $3,$4}' reg.txt 
/#|^$/  取含有#和空行的内容
$0表示显示所有列信息

awk 替换操作 :

awk '$2~/Xiaoyu/{print $4}' reg.txt|sed 's#:#$#g'
awk '$2~/Xiaoyu/{print $4}' reg.txt|tr ":" "$"
awk -F"[: ]+"'$2~/Xiaoyu/{print "$"$4"$"$5"$"$6}' reg.txt
awk '$2~/Xiaoyu/{gsub(/:/,"$",$NF);print $NF}' reg.txt
gsub(/:/,"$",$NF);print $NF  多个命令用;来连接同时执行
gsub(/要替换的内容/,"替换成什么内容",$参数,表示替换第几列)
$NF  表示文件最后一列  

awk命令模式分类 :

普通模式 :

比较行信息 :

awk 'NR>2' reg.txt
显示第二行以后的信息 NR 表示文件行信息

连续多行信息 :

awk 'NR==2,NR==4' reg.txt
2到4行内容  , 连续

不连续多行 :

awk 'NR==2;NR==4' reg.txt
第二第四行内容  ;  不连续多行

特殊模式 :

BEGIN{动作} : 在处理文件之前,先做什么事.

添加表头 :

awk 'BEGIN{print "姓","名","号码","捐款记录"}{print $0}' reg.txt|column -t
在文件开头 添加表头

用于计算 :

awk 'BEGIN{print 4+5}'
计算 4+5 的值 可进行的计算符号有 + - * / %  ^(幂)==**  

修改内置变量 :

awk '{print $(NF-1)}' reg.txt   
取出倒数第二列
NR 表示行信息 : 
FS 指定分割符 
awk 'BEGIN{FS="[: ]+"}{print $4}' reg.txt
操作文件前先用 : 和空格分割 查看文件第4列信息
-v : 指定变量信息 
awk -vFS="[: ]+"  '{print $1,$4}' reg.txt
-v 指定 分割符FS="[: ]+"

END{动作} : 在处理文件之后,再做什么事情 ;

awk  'BEGIN{print "姓","名","号码","捐款记录"}{print $0}END{print "学生捐款登记表"}' reg.txt|column -t
咋文件末尾添加注释(内容)或将统计后的最终结果输出 如下 : 

awk 统计分析 :

  1. awk统计运算公式

    1. 文本信息累加运算

      i=i+1

      统计文件行数

      awk '{i++}END{print i}' test.txt

    2. 数值信息求和运算 :

      sum=sum+nn表示要对文件第n行进行求和运算 :

      seq 10|awk '{sum=sum+$1}END{print sum}'
      
      sep 10 创建环境  
      END输出最后结果
      $1表示计算第一列的和
      

扩展

windows 系统和linux系统文件相互传输

  • yum安装 lrzsz : yum install -y lrzsz
  • rz 将windows数据传输到linux系统
  • sz 将linux数据传输到windows系统
计算 secure-20161219 文件用户登录失败的次数
awk '/Failed/{i++}END{print i}' secure-20161219

列的分割过程 :

QQ图片20190725101621.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 210,914评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 89,935评论 2 383
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,531评论 0 345
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,309评论 1 282
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,381评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,730评论 1 289
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,882评论 3 404
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,643评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,095评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,448评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,566评论 1 339
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,253评论 4 328
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,829评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,715评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,945评论 1 264
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,248评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,440评论 2 348

推荐阅读更多精彩内容

  • 操作系统命令三剑客-awk 一: 三剑客命令awk概述gawk : pattern scanning and pr...
    ManBu_x阅读 310评论 0 1
  • 转载 原文的排版和内容都更加友好,并且详细,我只是在这里贴出了一部分留作自己以后参考和学习,如希望更详细了解AWK...
    XKirk阅读 3,189评论 2 25
  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,333评论 0 2
  • 骂人,是不登大雅之堂的粗鄙行为。却又是每一种语言被活学活用得最多的部分。 骂人也分段位之高低。低段位的骂人,尽是些...
    谜样男人阅读 815评论 0 2