4
awk名字来源于三个开发人员,centos系统默认用的GWK,
使用来模式扫描和处理的语言,格式化显示文档和打印报表
强大的就在于能把你需要的文本内容按照你希望的格式输出显示,甚至打印报表的格式也可以,因此awk经常用于处理各种文档,比如日志信息,awk在哪里
**file文件时显示某个文件类型的,但是如果查看的文件很多,就可以把查看的文件写在一个文件里,用-f调用,就可以批量的读取你的文件列表,判断每个文件的类型 **
program的程序有这样的表现形式:'BEGIN{action;。。}pattern{action;。。}END{action;。。} '
一般用单引号不要用双引号,因为可能跟其他语句造成冲突,一般都是在外面用单引号,里面用双引号
awk处理机制类似于sed
读入一行,模式空间,保持空间,来回切换,进行处理,处理之后自动进入第二行,系统自带循环,一行处理完读入下一行
这一点awk和sed基本一致
sed默认回车换行算一行,但是awk可以设定以什么为一行
¥0代表整行
¥1代表第一个字段
默认空白符为切开的字段,tab,空格,个数不限
实现机制;在一行读入,有可能在读入第一行之前就想做点什么,(有些把行都读完,才做事情)
就需要用到begin,end
begin经常用于打印表头(都不知道文件是什么就开始工作,执行完begin之后,就把文件一行行读入)
end往往用作汇总(end和begin不是必须有的代码)
begin pattern end 组合其实就是program:pattern {action statements;…}
print打印 $0就是整行,默认就是把整行显示出
awk是标准输入,就可以用重定向,借助管道处理一些标准输出
也可以带特殊的字符比如回车换行\n
直接打印字符串,因为后面没有跟任何pattern和任何处理,begin是在读入文件之前进入的动作,还可以进行运算
打印第1列,第3列
awk如果表示字符串就必须要加双引号
awk自动压缩空白符
tab建作为风格符,双引号不能去掉
第二个字段挂载点,第4个是挂载选项(default
bash里的内置变量PS1 PS2 HISTSIZE
FS 就是F=field s=separator分隔符的意思 作用等价于 -F
变量 要跟在V的选项后面 要给变量赋值
不需要加¥,因为本身就是个变量
bash里的变量
用FS的内置变量更合理,后面的分隔符可以设定跟FS
把文件读进去,用指定的分隔符把它切割成一个个字段,所以是读入内容的切割
OFS定义输出分割符
r=record s=separator
记录也可以定义分隔符,行的分隔符
ORS输出的记录分隔符
$0打印整行,但是原来的换行改成----所以就不会换行了
DF取设备名和分区利用率
httpd日志把ip取出来/var/log/httpd/access_log
每一行都是7个字段
取rpm包cpu架构
记录的数量
跟两个文件,发现数据叠加在一起编号
分开编也可以用FNR
‘
可以知道你 参数有几个’
在shell里面的含义¥0代表文件名本身,¥1代表第一个参数a 2代表b
在awk里面
认为awk自己就属于第一个参数
2019/02/27 AWK入门01
最新推荐文章于 2024-08-20 16:44:22 发布
awk是一种强大的文本分析工具,常用于处理日志信息和文档格式化。它允许用户按照自定义格式输出文本,并能批量读取文件进行处理。awk程序由BEGIN、pattern和ACTION块组成,BEGIN用于预处理,END用于总结。字段通过FS分隔符切割,OFS定义输出分隔符。在shell中,awk可用于标准输入、重定向和管道操作,灵活处理标准输出。
摘要由CSDN通过智能技术生成