shell awk基本使用

  • awk

1.介绍:

基于模式匹配检查输入文本,逐行处理并且输出

通常用在shell脚本中获取指定的数据

单独使用时,可以对文本数据做统计

2.基础语法

格式1:命令 | awk [选项] '[条件]{指令(多个指令可以用;分割)}'

格式2:awk [选项] '[条件]{指令}' 文件

例如:awk '{print 1,3}' fileName //打印fileName的所有行的第1和第3列,因为没有条件所有扫描所有行

awk内置变量

FS //保存或者设置字段分隔符,例如FS=":", 与-F功能一样

$n //第n列,n为0时表示整行

NF //记录当前处理行的字段个数(列数)

NR //记录当前已经读入行的数量(行数)

过滤时机:BEGIN{} {} END{}

3.常用选项

-F //可以指定分隔符(分割列),默认的分隔符为空格和Tab键。-F: 分隔符为:

4.条件表达式:

正则表达式

还可以匹配列,例如:awk -F: '3!~/bash/{print 1,7}' file //匹配第3列不是bash结尾的行 (~为匹配 !~为不匹配)

数值/字符比较

== != > >= < <= && | //例如:awk 'NR==2' file //打印行号为2的

5. awk流程控制语法:awk '{if(条件){条件满足执行}else{}}' //if必须在{}内

例如:awk '{if{NR==3}{print NR}else{print "hello"}}'

6. awk for循环:

例如:awk 'BEGIN{for(i=1;i<5;i++) {print i}}'

7. awk数组的定义与使用

定义:数组名[下标]=元素值 //下标可以为字母什么的,有点像map

调用:数组名[下标]

遍历:for(变量名 in 数组名){print 数组名[变量]} //无序打印

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.函数 (1) 函数可以这样定义: function fname() { statements; } 或者 fn...
    huxt阅读 407评论 0 0
  • 基础命令 主要的命令和快捷键 Linux系统命令由三部分组成:cmd + [options]+[operation...
    485b1aca799e阅读 1,119评论 0 0
  • 【所有相关命令的基本语法可以通过man查看,善用man】 第三章:基本的bash shell命令 1:关于bash...
    我自去留阅读 875评论 0 0
  • 一.基本介绍 1.awk: awk是一个强大的文本分析工具,在对文本文件的处理以及生成报表,awk是无可替代的。a...
    大福技术阅读 1,684评论 1 4
  • 本节内容 1. 三剑客简介 2. sed命令详解 3. awk命令详解 文本处理三剑客 在 Shell 下使用这些...
    WickJohn阅读 212评论 0 0