awk入门与基础
awk不仅仅是linux操作系统中的一个命令,而且是一种编程语言,可以用来处理数据和生成报告(excel) 处理数据可以是一个或多个文件,可以是来自标准输入也可以通过管道符获取标准输入,awk可以在命令行上直接编辑命令惊醒操作也可以编写成awk程序来进行更为复杂的运用。
指定awk按照什么字符进行文本切割,将源文件切割成以列一列的,如果不指定一下参数,awk默认按照空格进行文本切割,{}中的print代表输出的意思,$代表去列,$1代表取第一列,$2代表取第二列,以此类推,$0代表取全部
例如:awk ‘{print $1 }’ 文件名
输入分隔符为 : 的第一列
例如:awk -F “:” ‘{print $1}’ 文件名
awk格式
awk的条件分为两部分
模式:内容的查找范围,过滤文件的内容
动作:将给我们找到的内容切割成以列一列的进行输出
如果没有动作默认输出全部($0)模式是按行取数据的,动作是按列取数据的
Awk -F[参数] ‘BEGIN{}模式{ 动作}END{}’ 文件名
BEGIN====>开始模块 用来告诉awk数据该如何读
END ===>结束模块 用来告诉awk程序如何结束
NR这个符号其实真正的含义不是行号,而是数据被awk读取一段以后,NR就会记录一次
由于awk默认以\n作为每次读数据的结束标志,因此NR就恰好等于行号了
假如修改awk默认的读数据的默认换行符,读入换行符可以通过BEGIN模块在awk读取数据之前设定它的读入换行符是谁,默认awk读入换行符和输出换行符都是\n
BEGIN{RS=”:”;ORS=”|”} 修改读入换行符
END=BEGIN{RS=”:”;ORS=”|”} 修改读入和输出换行符
{print xxx} 输出 (打印)
awk四中模式
正则表达式
比较表达式
范围表达式
模式表达式
正则表达式
~正则匹配操作符
!~ 取反
//代表要输入正则
awk属组
假如想用一种变量来表示多组数据通常要优先考虑数组的形式
例如:变量名[数字] =不通知
for (i in h) i==>变量 in==>从哪取值
For===>循环输出
Tr 替换命令
格式 tr “+” “:” 将+替换成: