awk

awk是一款强大的文本分析工具,主要的功能如下:

  • 逐行扫描文本
  • 按列分割文本
  • 对行列做模式匹配
  • 处理匹配行

扫描

文件打印的时候,经常需要做一些加工处理,比如打印行号,打印某几行某几列,打印匹配的行等需要,命令如下:

#打印整个文件
awk '{print}' <file path>

#打印行号
awk '{print NR, $0}' <file path>

#打印部分行
awk 'NR==<start number>,NR==<end number> {print NR, $0}' <file path>

分割

如果文本按照空格分割,用户可以自由组合输出任何几列,从数字1开始,如下:

#打印第一列和最后一列
awk '{print $1, $NF}' <file path>

#用冒号分割列,从11行到12行,打印第一列和第二列
awk -F':' 'NR==11, NR==12 {print $1, $2}' <file path>

匹配

#打印匹配行,第一列和第二列
awk '/<match string>/ {print $1,$2}' <file path>

#打印第二列匹配的行
awk '$2 ~ /<match string>/ {print}' <file path>

#打印第二列完全匹配的行:
awk '$2 ~ /^<match string>$/ {print}' <file path>

条件

# 打印第四列大于5000的列
awk '$4 > 5000 {print}' <file path>

运算

打印的时候,列可以做算数元算:+-*/%^

# 打印幂
echo "2 3\n2 4" | awk '{print $1^$2}'
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • awk介绍awk变量printf命令:实现格式化输出操作符awk patternawk actionawk数组aw...
    哈喽别样阅读 1,588评论 0 4
  • awk:报告生成器,格式化文本输出 内容: awk介绍 awk基本用法 awk变量 awk格式化 awk操作符 a...
    BossHuang阅读 1,468评论 0 9
  • 转载 原文的排版和内容都更加友好,并且详细,我只是在这里贴出了一部分留作自己以后参考和学习,如希望更详细了解AWK...
    XKirk阅读 3,254评论 2 25
  • Linux指令中文说明传送入口 整理自Linux指令中文说明 文本和数据进行处理的编程语言awk 是一种编程语言,...
    释闲人阅读 2,155评论 1 6
  • 1. 什么是AWK? AWK是一个强大的格式化文本处理工具,一般在类Unix操作系统中都是必带的工具(Linux、...
    流川枫AI阅读 3,510评论 0 7