AWK

本文介绍了 grep、sed 和 awk 的基本使用方法及应用场景。grep 主要用于文本查找;sed 适用于编辑匹配到的文本;而 awk 则擅长格式化文本,并进行复杂的文本处理。文章还详细解释了 awk 中的内置变量及如何利用这些变量进行更灵活的数据处理。
摘要由CSDN通过智能技术生成

1. grep 更适合单纯的查找或文本匹配

2.sed 更适合编辑匹配到的文本

3. awk 更适合格式化文本,对文本进行较复杂格式处理

4. awk 最常用的动作  print printf

$0 表示整行 NF 表示该列被分割成几列字段,倒数第二列 $(NF-1) $NF 表示当前分割后最后一列  

5. awk 2中特殊处理模式 :  BEGIN  END

    BEGIN : 指定可处理文本前需要执行的操作

    END     : 指定处理完所有行需要执行的动作

6.    内置变量

    输入分隔符 field separator  FS

    输出分隔符 output field separator OFS

    awk -F# '{print $1 $2}' test

    awk -v FS='#' '{print $1 $2}' test

    awk -v OFS="+++" '{print $1,$2}' test  

    输入换行符  RS

    输出换行符   ORS

    当前行字段个数  NF

    当前处理文本行号  NR  多文件时,会按文件顺序 行号递增

    各个文件分别计数行号  FNR  多文件时,会按各自文件 行号显示

    档期文件名  FILENAME

    命令行参数格式  ARGC

    参数数组 ARGV

    awk 'BEGIN{print argv[0],argv[1],argv[2])' test1 test2 //  nawk 未实现,不知道原因

    自定义变量 awk 'BEGIN{aa="111";print "123",aa}' tt.txt

    awk -v TT="123" 'BEGIN{print "123",TT}' tt.txt     //  也未实现 ,不知道原因

    awk -v FS="#" '{printf "第一列: %s\t   第二列:  %s \n",$1,$2}'  test

    awk  负责文本切割 printf  负责格式化输出

     awk '/^123/{print $0}' 1.txt

     awk '{if (NR > 1 && NR <4 ){print $0}}' 1.txt

     awk '{if(NR == 1 ){print $2,$3} else if(NR ==2){print $1}else {print $0}}' 1.txt

      

转载于:https://www.cnblogs.com/jgmor/p/10071382.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值