码迷,mamicode.com
首页 > 系统相关 > 详细

linux三剑客awk、sed、grep

时间:2016-11-14 02:41:57      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:linux三剑客awk、sed、grep

linux三剑客awk、sed、grep

    1、awk主要用来做分列、匹配、计算的工作
    2、sed主要用来做替换的(流处理)
    3、grep主要用来过滤出需要的文本

awk(默认的分隔符为空格)awk    -F ":"  ‘/bonzi/{if (NR==2) print  $0}‘(一般模式)

    -F    设置分隔符,可以设置多个分隔符     -F  "[:!]+"

    NR    表示行号

    $NF   表示尾行

    NF 当前记录中的字段个数


内置函数

gsub(r,s)

在整个$0中用s代替r

gsub(r,s,t)

在整个t中用s替代r

index(s,t)

返回s中字符串t的第一位置

length(s)

返回s长度

match(s,r)

测试s是否包含匹配r的字符串

split(s,a,fs)

在fs上将s分成序列a

sprint(fmt,exp)

返回经fmt格式化后的exp

sub(r,s)

用$0中最左边最长的子串代替s

substr(s,p)

返回字符串s中从p开始的后缀部分

substr(s,p,n)

返回字符串s中从p开始长度为n的后缀部分


sed(流编辑)sed  -n  ‘2s#原#改#g‘    file

    -n取消默认输出

    -i修改内容

    -e允许多项编辑

    -r扩展正则

sed    -n    ‘/bonzi/s#原#改#gp’    file

sed    -i        ‘2,5s#原#改#g‘    file

后项引用的例子:

[root@www test]# ifconfig eth1|sed -nr ‘2s#.*addr:(.*)  Bc.*$#\1#gp‘
192.168.1.8



grep(过滤文本)

    -v排除

    -i不区分大小写

    -o只输出匹配到的内容

    -A打印匹配到后面的行,-A  3打印后三行

    -B打印匹配到的前面的行,-B  4打印前4行

    -C打印匹配到的上下文的行,-C    5打印上下5行



linux三剑客awk、sed、grep

标签:linux三剑客awk、sed、grep

原文地址:http://12079244.blog.51cto.com/12069244/1872424

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!