awk入门

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 “+” “:”   +替换成:

 

posted @ 2018-10-31 13:53  枫。落葉  阅读(56)  评论(0编辑  收藏  举报