码迷,mamicode.com
首页 > 其他好文 > 详细

awk文本处理

时间:2019-05-17 12:11:50      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:int   自定义变量   生成   标准输入   文件   概念   格式   pre   空格   

awk

  • 简介
  • 基本语法
  • 变量
  • 格式化
  • 操作符
  • 进阶

简介

awk是一门编程语言,报告生成器,格式化文本输出
awk命名来自Aho, Weinberger, Kernighan三位大佬名字首字母缩写
awk多版本版本: awk、nawk、gawk,未作特别说明,一般指gawk,gawk是AWK的GNU版本

基本语法

原理

awk的运行原理将一行一行的文本作为输入,通过指定的域、行分隔符筛选数据,并对筛选到的数据进行定制化处理

语法

awk [选项] 'program' var=value file...
awk [选项] -f program file var=value file...
awk [选项] 'BEGIN{action;...}' pattern {action;...}END{action;...} file...

概念

  • 记录
  • 分隔符
  • 变量

记录:一行标准输入、文件的一行都可以看做为一条记录
域:也叫做列,一个记录可能会有很多列,通常awk将空格或者
分隔符:域、记录都有分隔符,同时也区分输入分隔符和输出分隔符

选项

  • -F
  • -v

-F 域分隔符选项

只打印用户名

awk -F: '{print $1}' /etc/passwd

-v 变量

自定义变量、内置变量

自定义变量

打印userName和uid,并用|分割

awk -F: -v var="|" '{print $1var$3}' /etc/passwd

内置变量

  • FS 输入域分隔符,默认为空白字符
  • OFS 输出域分隔符,默认为空白字符
  • RS 输入记录分隔符
  • ORS 输出记录分隔符
FS

通过内置变量FS指定输入域分隔符

awk -F: '{print $1,$3,$7}' /etc/passwd
awk -v FS=':' '{print $1,FS,$3}' /etc/passwd
OFS

通过内置变量OFS指定输出域分隔符

awk -v FS=':' -v OFS='|' '{print $1OFS$3}' /etc/passwd
RS

通过内置变量RS指定输入记录分隔符

awk文本处理

标签:int   自定义变量   生成   标准输入   文件   概念   格式   pre   空格   

原文地址:https://www.cnblogs.com/pli8421/p/10880561.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!