ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] ## **一.基本介绍** awk:   awk是一个强大的文本分析工具,在对文本文件的处理以及生成报表,awk是无可替代的。awk认为文本文件都是结构化的,它将每一个输入行定义为一个记录,行中的每个字符串定义为一个域(段),域和域之间使用分割符分割。 功能:流控制、数学运算、进程控制、内置的变量和函数、循环和判断 工作原理: awk 会把每行进行一个拆分,用相应的命令对拆分出来的“段”进行处理。 (1)行工作模式,读入文件的每一行,会把一行的内容,存到$0里 (2)使用内置的变量FS(段的分隔符,默认用的是空白字符),分割这一行,把分割出来的每个段存到相应的变量$(1-100) (3)输出的时候按照内置变量OFS(out FS),输出 (4)读入下一行继续操作 ## 简单实例 ``` \[root@tx3 ~\]# echo "this is a book" > awk.txt \[root@tx3 ~\]# awk '{print $2,$1,$3,$4}' awk.txt is this a book ``` Awk常用内置变量表: ``` 1 $0             当前记录(作为单个变量)   2 $1~$n          当前记录的第n个字段,字段间由FS分隔   3 FS             输入字段分隔符 默认是空格   4 NF             当前记录中的字段个数,就是有多少列   5 NR             已经读出的记录数,就是行号,从1开始   6 RS             输入的记录他隔符默 认为换行符   7 OFS            输出字段分隔符 默认也是空格   8 ORS            输出的记录分隔符,默认为换行符   9 ARGC           命令行参数个数   10 ARGV           命令行参数数组   11 FILENAME       当前输入文件的名字   12 IGNORECASE     如果为真,则进行忽略大小写的匹配   13 ARGIND         当前被处理文件的ARGV标志符   14 CONVFMT        数字转换格式 %.6g   15 ENVIRON        UNIX环境变量   16 ERRNO          UNIX系统错误消息   17 FIELDWIDTHS    输入字段宽度的空白分隔字符串   18 FNR            当前记录数   19 OFMT           数字的输出格式 %.6g   20 RSTART         被匹配函数匹配的字符串首   21 RLENGTH        被匹配函数匹配的字符串长度 ```