awk常用命令
Posted coolmark-blog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了awk常用命令相关的知识,希望对你有一定的参考价值。
awk常用命令
##提取两个文件第一列相同的行
awk -F',' 'NR==FNR{a[$1]=$0;next}NR>FNR{if($1 in a)print $0"
"a[$1]}' 1.log 2.log
awk 'NR==FNR{a[$1]++}NR>FNR&&a[$1]>1' 111.txt 111.txt
awk 'a[$1]++==1'
cat 111.txt | awk -F '[:|]' '{print $2}' > 111.txt
##awk 按某个位置的字符分隔的方法
awk -F ":" '{ for(i=1;i<=3;i++) printf("%s:",$i)}'
awk -F':' '{print $1 ":" $2 ":" $3; print $4}'
awk -F':' '{print $1 ":" $2 ":" $3; for(i=1;i<=3;i++)$i=""; print}'
##awk打印用户和密码
cat test.log |awk -F '[ ]+' '{print $1 " " $2}'
##排序显示重复项目
cat test.log |awk -F '[ ]+' '{print $1}'| sort | uniq -c | sort -nr
#awk -F ' '来表示分隔符,比如
awk -F ' ' '{print $1}' file1.txt
##多个空格分隔的方法
awk -F '[ ]+' '{print $9}'
ls -lh /etc/sysconfig/network-scripts/ifcfg-* | awk -F '[ ]+' '{print $9}'
##指定分隔符既可以为空格,又可以为冒号,那么处理将会变得简单。可以使用正则表达式来指定多个分隔符,格式为 -F'[空格:]+' 如下
awk -F'[ :]+' '{print $NF" "$(NF-2)}' file1.txt
1、awk '/101/' file # 显示文件file中包含101的匹配行。
awk '/101/,/105/' file
awk '$1 == 5' file
awk '$1 == "CT"' file # 注意必须带双引号
awk '$1 * $2 >100 ' file
awk '$2 >5 && $2<=15' file
2、awk '{print NR,NF,$1,$NF,}' file # 显示文件file的当前记录号、域数和每一行的第一个和最后一个域。
awk '/101/ {print $1,$2 + 10}' file # 显示文件file的匹配行的第一、二个域加10。
awk '/101/ {print $1$2}' file
awk '/101/ {print $1 $2}' file # 显示文件file的匹配行的第一、二个域,但显示时域中间没有分隔符。
3、df | awk '$4>1000000 ' # 通过管道符获得输入,如:显示第4个域满足条件的行。
4、awk -F "|" '{print $1}' file # 按照新的分隔符“|”进行操作。
awk 'BEGIN { FS="[: |]" }
{print $1,$2,$3}' file # 通过设置输入分隔符(FS="[: |]")修改输入分隔符。
Sep="|"
awk -F $Sep '{print $1}' file # 按照环境变量Sep的值做为分隔符。
awk -F '[ : |]' '{print $1}' file # 按照正则表达式的值做为分隔符,这里代表空格、:、TAB、|同时做为分隔符。
awk -F '[][]' '{print $1}' file # 按照正则表达式的值做为分隔符,这里代表[、]
5、awk -f awkfile file # 通过文件awkfile的内容依次进行控制。
cat awkfile
/101/{print "