awk实例

2017-09-15

awk是一个强大的文本分析工具,简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。结合grep和sed,能快捷的处理文本。有专门介绍awk的书。

1、cat /etc/passwd|awk -F: '{print $1}'

find /etc/init.d/ -type f -name "redis*"|awk '{printf "%s stop\n",$1}'

2、linux的awk一般都是gawk,/bin/awk -> gawk

3、awk '/abc/' file.txt 显示文件中包含abc行。类似grep abc a.txt

4、awk '{print NR,NF,$1,$NF,}' file.txt按空格分隔列,显示当前记录号、域数和每一行的第一列和最后一列。

-F参数可以设置分割参数,例如按:分割

awk -F: '{print $1}' /etc/passwd

或者cat file|awk -F "|" '{print $1}'

5、awk编程语言

cat v.txt|awk '{print length($1)}'

6、awk中使用NR和FNR,一般在awk处理多个文件时,NR==FNR才有意义

NF 当前记录中的字段数。

NR 当前记录数。

FNR同NR,但相对于当前文件。

awk '{print NR,FNR}' test.txt test2.txt​

awk ‘{if(NR==FNR){a[FNR]=$1;}else{print $1,a[FNR]}}’ b.txt a.txt

7、打印奇数行与偶数行

awk ‘NR%2’ test.txt
awk ‘!(NR%2)’ test.txt

8、杀死tomcat的stop.sh脚本

#!/bin/sh

ps -ef| grep tomcat |grep -v grep | awk '{print $2}' |xargs kill -9
9、打印前7列
cat a.txt|awk '{NF=7}1' >> b.txt
tail -f access.log|awk 'NF=7' OFS='\t' >> b.txt
cut -d"," -f3-6 urfile

分类:Linux | 标签: |

相关日志

评论被关闭!