zoukankan      html  css  js  c++  java
  • 三剑客-awk(简写)

    特殊要点:
    $0 表示整个当前行
    $1 每行第一个字段
    NF 字段数量变量
    NR 每行的记录号,多文件记录递增
    OFS 输出字段分隔符, 默认也是空格,可以改为制表符等
    ORS 输出的记录分隔符,默认为换行符,即处理结果也是一行一行输出到屏幕
    -F'[:#/]' 定义三个分隔符


    只查看testfile文件(100行)内第20到第30行的内容:

    awk '{if(NR>=2 && NR<=3) print $1}' testfile(sed:sed -n '2,3p' testfile)

    Hello,Chen mei mei! Where are you?提取出Chen Where:

    echo 'Hello,Chen mei mei! Where are you?'|awk -F '[,! ]+' '{print $2,$5}'

    (多一个加号表明将连续出现的记录分隔符当做一个来处理)

    BEGIN END 模块
    统计某个文件夹下的文件占用的字节数
    ll|awk 'BEGIN {size=0}{size=size+$5}END{print size}'


    例题
    $1与$3相连输出,不分隔   awk -F: '{print $1$3}'
    多了一个逗号,$1与$3使用空格分隔   awk -F: '{print $1,$3}'
    $1与$3之间手动添加空格分隔   awk -F: '{print $1" "$3}'
    自定义输出   awk -F: '{print "username:"$1" uid:"$3}'
    显示每行有多少字段   awk -F: '{print NF}'
    将每行第NF个字段的值打印出来   awk -F: '{print $NF}'
    显示只有7个字段的行   awk -F: 'NF==7{print}' passwd
    显示每行字段数量大于等于7的行   awk -F: 'NF>=7{print}' passwd
    输出每行的行号   awk -F: '{print NR,$0}' passwd
    依次打印行号,字段数,最后字段值,制表符,每行内容   awk -F: '{print NR,NF,$NF," "$0}'
    显示第5行   awk -F: 'NR==5{print}' passwd
    显示第5行和第6行   awk -F: 'NR==5||NR==6{print}' passwd
    不显示第一行   awk -F: 'NR!=1{print}' passwd (sed -n '1!p' passwd)

    输出第一列和第二列   awk -F: '{print $1,$2}' passwd
    分别打印第一列和第二列(分行输出)   awk -F: '{print $1; print $2}' passwd
    分别打印1,3,6列,输出结果用制表符分隔   awk -F ':' '{print $1,$3,$6}' OFS=" " passwd

  • 相关阅读:
    为什么要用webUI?
    探索WebKit内核(一)------ 菜鸟起步
    主进程退出的时候,杀死所有子进程
    那两年炼就的Android内功修养
    飞鸽---局域网聊天软件攻防战
    如何利用Fluxion诱惑目标用户获取WPA密码
    性能测试:CPU内存,硬盘IO读写,带宽速度,UnixBench
    解决maven编译错误:程序包com.sun.xml.internal.ws.spi不存在
    Apache-Flink深度解析-DataStream-Connectors之Kafka
    linux下find(文件查找)命令的用法总结
  • 原文地址:https://www.cnblogs.com/vanoraxnc/p/10387075.html
Copyright © 2011-2022 走看看