精通awk系列(7):awk读取行的细节】的更多相关文章

回到: Linux系列文章 Shell系列文章 Awk系列文章 详细分析awk如何读取文件 awk读取输入文件时,每次读取一条记录(record)(默认情况下按行读取,所以此时记录就是行).每读取一条记录,将其保存到$0中,然后执行一次main代码段. awk '{print $0}' a.txt 如果是空文件,则因为无法读取到任何一条记录,将导致直接关闭文件,而不会进入main代码段. touch x.log # 创建一个空文件 awk '{print "hello world"}'…
精通awk系列文章 我录制了两个awk相关的视频教程: Awk经典实战案例精讲 精通awk精品课程:awk从入门到精通 1.安装新版本的gawk 2.本教程测试所用示例文件 3.铺垫知识:读取文件的几种方式 4.awk用法入门 5.BEGIN和END语句块 6.awk命令行结构和awk语法结构 7.awk读取行的细节 8.awk划分字段的3种方式 9.修改字段或NF引起的$0重新计算 10.awk筛选行和处理字段的示例 11.awk的工作流程 12.awk getline用法详解 13.awk…
回到: Linux系列文章 Shell系列文章 Awk系列文章 awk数据筛选示例 筛选行 # 1.根据行号筛选 awk 'NR==2' a.txt # 筛选出第二行 awk 'NR>=2' a.txt # 输出第2行和之后的行 # 2.根据正则表达式筛选整行 awk '/qq.com/' a.txt # 输出带有qq.com的行 awk '$0 ~ /qq.com/' a.txt # 等价于上面命令 awk '/^[^@]+$/' a.txt # 输出不包含@符号的行 awk '!/@/' a…
回到: Linux系列文章 Shell系列文章 Awk系列文章 awk用法入门 awk 'awk_program' a.txt awk示例: # 输出a.txt中的每一行 awk '{print $0}' a.txt # 多个代码块,代码块中多个语句 # 输出每行之后还输出两行:hello行和world行 awk '{print $0}{print "hello";print "world"}' a.txt 对于awk '{print $0}' a.txt,它类似于…
回到: Linux系列文章 Shell系列文章 Awk系列文章 awk命令行结构和语法结构 awk命令行结构 awk [ -- ] program-text file ... (1) awk -f program-file [ -- ] file ... (2) awk -e program-text [ -- ] file ... (3) 其中: awk语法结构 awk语法结构即awk代码部分的结构. awk的语法充斥着pattern{action}的模式,它们称为awk rule. 例如:…
回到: Linux系列文章 Shell系列文章 Awk系列文章 awk变量 awk的变量是动态变量,在使用时声明. 所以awk变量有3种状态: 未声明状态:称为untyped类型 引用过但未赋值状态:unassigned类型 已赋值状态 引用未赋值的变量,其默认初始值为空字符串或数值0. 在awk中未声明的变量称为untyped,声明了但未赋值(只要引用了就声明了)的变量其类型为unassigned. gawk 4.2版提供了typeof()函数,可以测试变量的数据类型,包括测试变量是否声明.…
回到: Linux系列文章 Shell系列文章 Awk系列文章 awk工作流程 参考自:man awk的"AWK PROGRAM EXECUTION"段. man --pager='less -p ^"AWK PROGRAM EXECUTION"' awk 执行步骤:…
回到: Linux系列文章 Shell系列文章 Awk系列文章 读取文件的几种方式 读取文件有如下几种常见的方式: 下面使用Shell的read命令来演示前4种读取文件的方式(第五种按字节数读取的方式read不支持). 按字符数量读取 read的-n选项和-N选项可以指定一次性读取多少个字符. # 只读一个字符 read -n 1 data <a.txt # 读100个字符,但如果不足100字符时遇到换行符则停止读取 read -n 100 data < a.txt # 强制读取100字符,遇…
回到: Linux系列文章 Shell系列文章 Awk系列文章 详细分析awk字段分割 awk读取每一条记录之后,会将其赋值给$0,同时还会对这条记录按照预定义变量FS划分字段,将划分好的各个字段分别赋值给$1 $2 $3 $4...$N,同时将划分的字段数量赋值给预定义变量NF. 引用字段的方式 $N引用字段: N=0:即$0,引用记录本身 0<N<=NF:引用对应字段 N>NF:表示引用不存在的字段,返回空字符串 N<0:报错 可使用变量或计算的方式指定要获取的字段序号. aw…
回到: Linux系列文章 Shell系列文章 Awk系列文章 getline用法详解 除了可以从标准输入或非选项型参数所指定的文件中读取数据,还可以使用getline从其它各种渠道获取需要处理的数据,它的用法有很多种. getline的返回值: 如果可以读取到数据,返回1 如果遇到了EOF,返回0 如果遇到了错误,返回负数.如-1表示文件无法打开,-2表示IO操作需要重试(retry).在遇到错误的同时,还会设置ERRNO变量来描述错误 为了健壮性,getline时强烈建议进行判断.例如: 上…