awk:报告生成器(不修改文本) 行:record 列:field NR:number of record //行数 NF:number of field //列数
**注:**列与列之间以空格为分隔符
打印文档第一列:
awk '{print $1}' access_log打印最后一列:
打印最后一列得到的值减一后的值
awk '{print $NF-1}' access_log打印倒数第二列
awk '{print $(NF-1)}' access_log注:直接连接
awk '{print $1,$2,$3}' one.txt注:以一个空格分隔 参数F后指明分隔符;
显示行数:
awk '{print NR "\t" $0}' one.txt注:行的计数,$0:所有列 awk默认,把空格当做字符拼接符,逗号则是默认分隔符(空格)
显示列数: 注:打印每一行中的列数
显示2012年入职的员工 只打印每行的列数; 只打印每行的行数: 只打印第3行: 只打印列数为4的行
如何后面不指明文件名,awk会等待输入:
注:BEGIN表示全局变量,FS表示当前分隔符 awk默认的输入分隔符和输出分隔符分别定义的
awk 'BEGIN{FS="2"}{print $1}' one.txt解释:FS表示输入分隔符, 解释:OFS表示输出分隔符。 注:如果要使用指定分隔符,后面一定要加逗号。
1)
awk '{print NR,$0}' one.txt two.txt会把two.txt的内容追加到one.txt下方显示。
2) FILENAME:为文件名。
重定向到另外一个文件中。 4)
awk '{print NR,"\t",FILENAME,"\t",$0}' one.txt two.txt awk 'BEGIN{OFS="**"}{print NR,"\t",FILENAME,"\t",$0}' one.txt two.txt1) 隐藏某列内容:
awk '{$1="";print $0}' one.txt<与<<的区别
1)awk做计算 awk会等待输入,因为没有输入,所以直接回车,awk会出计算结果 按ctrl+c结束。 2)awk计算时包含字符