初探awk&sed

sed和awk中,每个指令都包括两个部分,模式和过程。模式是/分隔的正则表达式。过程是指一个或多个将被执行的动作。

处理过程:

    1、 所有指令解释并应用于单行,sed会输出行并循环处理下一行,而awk不主动输出行,循环处理下一行。

    2、sed过程由单个字母组成。

    3、awk过程由程序设计语句和函数组成,一般使用{}括起。

 

一、sed使用

1、sed执行两种方法:

    Ⅰ:命令行编辑

        sed [-e] ' instruction'  file

        多个指令时才需要使用-e选项。

            sed 's/name/yangwx/' filename

        应该养成将指令用单引号包围起来的习惯。单引号可以包括空格等特殊符号。

    

        有三种方式可以指定多个指令

            分号分隔

                sed ' s/name/yangwx/  ;  s/phone/123456789/  '  filename

            每个指令前放-e

                sed  -e ' s/name/yangwx/  '  -e  '  s/phone/123456789/  '  filename

             使用Bourne shell的分行指令。再输入单引号后按return键,就会出现多行输入的提示符(>)

                [root@iZ2ze43igrnrzi1g8wngb4Z tmp]# sed '

                > s/sql/1111/

                > s/text/csv/

                > s/load/unload/' stock_load.sql

                use stock;

                delete from yang_stock_hist where data_date = '20211125';

                unload DATA local infile "/stock_data/data/20211125/stock_hist.csv" into TABLE yang_stock_hist fields terminated BY ',';

    Ⅱ:将命令放入文件中

        命令行上有较长的编辑命令时,可以将命令放入到文件中执行。

            sed -f scriptfile filename

  

        使用-n阻止自动输出,同时需要使用p指令来输出匹配到的内容。

            sed -n  '  s/name/yangwx/p'  filename 

二、awk使用

        命令行调用:awk ' introduction '  filename

        脚本调用:awk -f awkfile filename

        默认分隔符:空格或者制表符

        引用字段:$0 整个记录 $1分隔后第一个元素

        使用模式:    awk ' /name/ ' filename   OR  awk ' /name /  { print $1; print $2 }' filename  OR 

                            awk '$1 == name { print $0} '

        注意事项:使用单引号括起来指令 , 使用{}括起来print , 使用//括起来正则表达式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值