美文网首页
21 - awk基础语法

21 - awk基础语法

作者: 舍是境界 | 来源:发表于2022-04-01 07:43 被阅读0次

awk概述

  • aws编程语言/数据处理引擎
    • 创造者:Aho, Weinberger, Kernighan
    • 基于模式匹配检查输入文本,逐行处理并输出
    • 通常用在shell脚本中,获取指定的数据
    • 单独用时,可对文本数据做统计
  • 语法格式
    • 格式1:前置命令 | awk [选项] '[条件]{指令}'
    • 格式2:awk [选项] '[条件]{指令}' 文件...
cat test.txt
hello the world
welcom to beijing

awk '{print $1,$3}' test.txt
hello world
welcom beijing

awk '{print $1}' test.txt
hello
welcom

 awk '{print $1,$2}' test.txt
hello the
welcom to
  • 常用选项:-F可以指定分隔符,默认分隔符为(空白或Tab键)
awk -F: '{print $1,$2}' /etc/passwd
root x
bin x
daemon x

awk内置变量

  • 内置变量都有特殊含义,可直接使用
变量 说明
FS 保存或设置字段分隔符,例如FS=":",与-F功能一样
$n 指定分隔的第n个字段,如1、3分别表示第1、3列
$0 当前读入的整行文本内容
NF 记录当前处理行的字段个数(列数)
NR 记录当前已读入行的数量(行数)
awk -F: '{print NF}' /etc/passwd
7
7
...

 awk '{print NF}' test.txt
3
3
0

awk -F: '{print NR,NF}' /etc/passwd
1 7
2 7
3 7
4 7
5 7
6 7
7 7
8 7
···

awk -F: '{print "用户名:",$1,"解释器:", $7}' /etc/passwd
用户名: root 解释器: /bin/bash
用户名: bin 解释器: /sbin/nologin
用户名: daemon 解释器: /sbin/nologin
用户名: adm 解释器: /sbin/nologin

awk过滤的时机

  • 在所有行前处理,BEGIN{}
    • 读入第一行文本之前执行
    • 一般用来初始化操作
  • 逐行处理,{}
    • 逐行读入文本执行相应的处理
    • 是最常见的编辑指令块
  • 在所有行后处理,END{}
    • 处理完最后一行文本之后执行
    • 一般用来输出处理结果
  • 可以单独使用,也可以同时一起使用
 awk 'BEGIN {a=34;print a+12}'
46

awk 'BEGIN{x=0}/\<bash$/{x++}END{print x}' /etc/passwd
2

awk -F: 'BEGIN {print NR} END{print NR}' /etc/passwd
0
19

小结

  • 基本语法
    • 格式1:前置命令 | awk [选项] '[条件]{指令}'
    • 格式2:awk [选项] '[条件]{指令}' 文件...
  • 过滤时机
    • awk 'BEGIN{} [条件]{} END{}' 文件...

相关文章

  • 21 - awk基础语法

    awk概述 aws编程语言/数据处理引擎创造者:Aho, Weinberger, Kernighan基于模式匹配检...

  • 笔记-awk

    1.Awk基础介绍 2.awk语法格式 2.Awk工作原理 3.Awk内部变量 4.Awk格式输出 5.Awk模式...

  • awk 使用笔记

    基础语法说明 awk 是按分割符进行行处理的工具 1. 命令参数说明 基本命令格式 awk 'BEGIN{ pri...

  • Linux文本处理三剑客之awk

    awk 基本语法

  • awk的用法

    1.awk语法 awk 'pattern {action}' file awk:指令名称 pattern:过滤器 ...

  • AWK的使用

    AWK语法: awk -F/f/v/ + ‘pattern’ +文件全路径或者:标准输出|awk -F/f/v/...

  • Shell大杂烩

    AWK 常用语法:awk -F 'separator' '{pattern + action}' filenam...

  • Linux命令

    AWK - 行文本处理工具 原理: 逐行处理文本数据语法: awk 'pattern + {action}'...

  • linux中的awk命令详解

    1、AWK简介 AWK是一种处理文本文件的语言,是一个强大的文本分析工具。 2、AWK语法 awk [选项参数] ...

  • Day64-shell编程_正则表达式_awk

    1.Awk基础介绍 2.Awk工作原理 3.Awk内部变量 4.Awk格式输出 5.Awk模式匹配 5.1符号 ...

网友评论

      本文标题:21 - awk基础语法

      本文链接:https://www.haomeiwen.com/subject/whihjrtx.html