linux awk基本语法命令总结
一、基本用法 文本内容准备 2 this is a test 3 Are you like awk This‘s a test 10 There are orange,apple,mongo 用法一:行匹配语句awk ‘‘只能使用单引号 实例:每行按空格或TAB分割,输出文本中的1、4项 [[email?protected] mnt]# cat log.txt |awk ‘{print $1,$4}‘ 2 a 3 like This‘s 10 orange,mongo [[email?protected] mnt]# cat log.txt |awk ‘{printf "%-8s %-10sn",$1,$4}‘ 用法二:-F,指定分隔符 [[email?protected] mnt]# cat log.txt |awk -F ‘,‘ ‘{print $1,$2}‘ 2 this is a test 3 Are you like awk This‘s a test 10 There are orange apple [[email?protected] mnt]# cat log.txt |awk ‘BEGIN{FS=","} {print $1,$2}‘ #使用多个分隔符,先使用空格分割,然后对分割结果再使用“,”分割 [[email?protected] mnt]# cat log.txt |awk -F ‘[,]‘ ‘{print $1,$2,$5}‘ 用法三:awk -v #设置变量 [[email?protected] mnt]# cat log.txt |awk -va=1 -vb=s -vc=w ‘{print $1,$1+a,$1b,$1c}‘ 2 3 2s 2w 3 4 3s 3w This‘s 1 This‘ss This‘sw 10 11 10s 10w [[email?protected] mnt]# cat log.txt |awk -va=1 ‘{print $1,$1+a}‘ 用法四:awk -f {awk脚本} {文件名} 过滤第一列大于2的行 [[email?protected] mnt]# cat log.txt |awk ‘$1==2 {print $1,$2}‘ 过滤第一列大于2并且第二列等于‘Are‘的行 [[email?protected] mnt]# cat log.txt |awk ‘$1>2 && $2=="Are" {print $1,$2}‘ 用法五:指定输出分割符 [[email?protected] mnt]# cat log.txt |awk ‘{print $1,$5}‘ OFS=";" 2;this;test 3;Are;awk This‘s;a; 10;There; 用法六:正则字符串匹配 输出第二列包含“th” ,并打印第二列与第四列 [[email?protected] mnt]# cat log.txt |awk ‘$2 ~ /th/ {print $2,$4}‘ this a 用法七:忽略大小写 [[email?protected] mnt]# cat log.txt |awk ‘BEGIN{IGNORECASE=1} /THIS/ ‘ 2 this is a test This‘s a test 用法八:模式取反 输出第二列不包含"th"的行的第二列和第四列 [[email?protected] mnt]# cat log.txt |awk ‘$2 !~ /th/ {print $2,$4}‘ Are like a There orange,mongo [[email?protected] mnt]# cat log.txt |awk ‘!/th/ {print $2,$4}‘Are likea There orange,mongo (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |