美文网首页
grep/tail/head

grep/tail/head

作者: 慧琴如翌 | 来源:发表于2018-04-23 01:25 被阅读20次

    cat 1.txt |grep ff
    ---将文件1.txt中包含ff字符串的所有行打印出来

    cat 1.txt |grep ff -A4
    ----查看filename中含有ff所在行后4行内容

    cat 1.txt |grep f -B4
    ----查看filename中含有ff所在行前4行内容

    例如:

    [root@k8s-uat-node73 riskbell]# cat 1.txt 
    asdf
    2222
    ffff
    ,.;'
    8888
    f2345
    a45f
    wwww
    22222
    33333
    44444
    666677
    [root@k8s-uat-node73 riskbell]# cat 1.txt |grep f -A4
    asdf
    2222
    ffff
    ,.;'
    8888
    f2345
    a45f
    wwww
    22222
    33333
    44444
    [root@k8s-uat-node73 riskbell]# cat 1.txt |grep f 
    asdf
    ffff
    f2345
    a45f
    

    grep

    1. 在Linux系统中, 为找到文件try_grep含有以a字母为行开头的内容, 可以使用命令?

    #将1.txt文件中的以f开头的行的内容写到t1.log
    [root@k8s-uat-node73 riskbell]# grep -e ^f 1.txt >t1.log   
    [root@k8s-uat-node73 riskbell]# cat t1.log 
    ffff
    f2345
    下面这种跟上面的是等效的
    [root@k8s-uat-node73 riskbell]# cat 1.txt |grep ^f
    ffff
    f2345
    
    # 将查找出来的指定行写入到另一个文件
    [root@k8s-uat-node73 riskbell]# cat 1.txt |grep ^f >t1.log 
    [root@k8s-uat-node73 riskbell]# cat t1.log 
    ffff
    f2345
    

    -E 表示使用扩展表达式
    ^:匹配正则表达式的开始行。
    $: 匹配正则表达式的结束行。

    2. 查找出来满足两个条件中的一个的指定行

    [root@k8s-uat-node73 riskbell]# grep -E 'f|a' 1.txt >t1.log 
    [root@k8s-uat-node73 riskbell]# cat t1.log 
    asdf
    ffff
    f2345
    a45f
    

    3. 查找出来同时满足两个条件的指定行

    [root@k8s-uat-node73 riskbell]# grep 'f' 1.txt  | grep "2"  > t1.log
    [root@k8s-uat-node73 riskbell]# cat t1.log 
    f2345
    

    https://www.cnblogs.com/bingyublog/p/8039518.html

    grep后面跟正则表达式

    输出文件中数字开头的行

    fujunmindeMacBook-Pro:temp fujunmin$ cat 1.txt 
    1111aaaa
    qqqqqq222ert
    wwwww6678
    eeee009
    999wfg77
    WDFF
    dddd8
    fujunmindeMacBook-Pro:temp fujunmin$ grep -E '^[0-9]' 1.txt 
    1111aaaa
    999wfg77
    

    输出文件中非字母开头的行

    fujunmindeMacBook-Pro:temp fujunmin$ grep -v  -E '^[a-z]' 1.txt |grep -v -E '^[A-Z]'
    1111aaaa
    999wfg77
    

    注意:

    1. -v 表示不包含
      2.-E 表示后面跟的是正则表达式

    查找以指定字符串开头的文件

    find . -name pro*


    image.png

    查看一个文件内容的第几行到第几行

    sed -n '5,10p' filename 行

    这样你就可以只查看文件的第5行到第10

    [root@k8s-uat-node73 riskbell]# cat t1.log 
    asdf
    ffff
    f2345
    a45f
    [root@k8s-uat-node73 riskbell]# sed -n '2,3p' t1.log 
    ffff
    f2345
    

    从第四行开始显示到最后

    sed -n '4,$p' file.txt

    包括第3行哦

    fujunmindeMacBook-Pro:temp fujunmin$ cat 1.txt 
    1111aaaa
    qqqqqq222ert
    wwwww6678
    eeee009
    999wfg778
    fujunmindeMacBook-Pro:temp fujunmin$ 
    fujunmindeMacBook-Pro:temp fujunmin$ sed -n '3,$p' 1.txt
    wwwww6678
    eeee009
    999wfg778
    fujunmindeMacBook-Pro:temp fujunmin$ 
    

    显示文件的最后几行

    [root@k8s-uat-node73 riskbell]# cat 1.txt | tail -n 3
    33333
    44444
    666677
    

    显示文件的开始几行

    [root@k8s-uat-node73 riskbell]# cat 1.txt | head -n 3
    asdf
    2222
    ffff
    

    显示从第2行开始的3行内容(包括第2行在内的一共3行)

    [root@k8s-uat-node73 riskbell]# cat 1.txt |tail -n +2 |head -n 3
    2222
    ffff
    ,.;'
    

    分解: tail -n 1000:显示最后1000行
    tail -n +1000:从1000行开始显示,显示1000行以后的
    head -n 1000:显示前面1000行


    不符合条件的行选出来:

    将/etc/passwd,将没有出现 root 和nologin的行取出来

    grep -v root /etc/passwd | grep -v nologin

    root:x:0:0:root:/root:/bin/bash
    operator:x:11:0:operator:/root:/sbin/nologin

    相关文章

      网友评论

          本文标题:grep/tail/head

          本文链接:https://www.haomeiwen.com/subject/agohlftx.html