awk - 文件分析

awk:
        分析文本数据; 它内置有变量,还可以自定义变量; 它支持数组; \
        它支持循环和判断; 


        awk工作流程是这样的:先执行BEGING,然后读取文件,读入有/n换行  \
        符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0 \
        则表示所有域,$1表示第一个域,$n表示第n个域,随后开始执行模式所对 \
        应的动作action。接着开始读入第二条记录······直到所有的记 \
        录都读完,最后执行END操作。


格式:
       awk '{pattern + action}' {filenames}


       awk [-F re] [parameter...] ['program'] [-f 'programfile'] \
       [in_file_list]


参数说明:
        -F {spliter} : 指定分割符, 默认为空格 






awk内置变量:
ARGC               命令行参数个数
ARGV               命令行参数排列
ENVIRON            支持队列中系统环境变量的使用
FILENAME           awk浏览的文件名
FNR                浏览文件的记录数
FS                 设置输入域分隔符,等价于命令行 -F选项
NF                 浏览记录的域的个数
NR                 已读的记录数
OFS                输出域分隔符
ORS                输出记录分隔符
RS                 控制记录分隔符










示例: 
    cat /etc/passwd | awk -F ':' 'BEGIN {print "name, shell"}  \
    {print $1","$7} END {print "blue, nosh"}'


    last -n 5 | awk '{print $1}'


   awk -F ':' '{print "filename:" FILENAME ",linenumber:" NR  \
    ",columns:" NF ",linecontent:"$0}' 


    awk -F ':' '{printf("filename:%10s,linenumber:%s,columns:%s, \
    linecontent:%s\n", FILENAME, NR, NF, $0)}' /etc/passwd


    awk '{count; print $0;} END{print "user count is", count}' /etc/passwd



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值