美文网首页
三剑客练习

三剑客练习

作者: 国王12 | 来源:发表于2019-03-21 20:53 被阅读0次

    过滤出一个文件的第二行,第三行

    解决;1.sed  -n  '2,3p'  oldboy

            2. awk  'NR==2,NR==3' oldboy

            3.head  -3 oldboy|tail -2

    过滤出含有oldboy字符串的行

    解决; 1.grep -n 'oldboy' oldboy    (-n是显示在原文件中的行号)

              2.sed  -n  '/oldboy/p'  oldboy

    删除含有oldboy的行

    解决:1.grep  -v  "oldboy" oldboy

              2.sed  '/oldboy/d'  oldboy

    将文件中oldboy换成oldgirl

    答:1.sed  's#oldboy#oldgirl#g'  oldboy

          2.  vim 编进模式    :%s#oldboy#oldgirl#g

    问题1:取test.txt文件的第2行到第3行的内容。

    解决:  head -3 test.txt|tail -2  (显示前三行,管道,显示前三行的后两行)

              sed -n '2,3p' test.txt        (-n,取消默认显示其他内容  p为打印 )

              awk  'NR==2,NR==3'  test.txt      (NR指定行)

    问题2:过滤出含有root字符串的行※。

    解决:grep -n "root"  test.txt  (-n为显示在源文件中的行号,可不加)

              sed  -n    '/oldboy/p'  oldboy  (-n为不显示其他)

    问题3:删除含有root字符串的行※。

    解决;  grep  -v  "root"  test.txt  (-v取反  ,就是不显示包含root的行)

          sed  '/root/d'  test.txt        (d  删除包含……的行)

    问题4:取文件的第一列、第三列和最后一列内容,并打印行号※。

      解答:  awk  ‘{print NR $1,$3, $NF}’      $NF为最后有一列    NR显示行号 放在括号前加==数字,即只匹配第几行的第几列

    问题5:取出Linux中执行ifconfig eth0后对应的IP地址(只能输出IP地址)。

    问题6:过滤文件中第一列内容匹配root的字符串,把符合的行的最后一列输出

    grep -w "root"|awk '{print $NF}'

    三剑客自身有特长的:

    grep  过滤查找内容 筛子

    sed  取行 替换 删除  追加

    awk  取列

    cut 按列切割

    -d 指定分隔符 -f指定哪列,多列用逗号

    [root@oldboyedu ~]# cat a.txt

    1 2 3 4 5 6 7 8 9 10

    [root@oldboyedu ~]# cut -d" " -f1,3,5 a.txt

    1 3 5

    [root@oldboyedu ~]# cut -d" " -f3-5 a.txt

    参数:

    -F 指定分隔符

    列:

    2 第二列

    NF 最后一列

    $NF-1倒数第二列  需加()

    [^r] 非r

    [r] 以非r字符开头的

    相关文章

      网友评论

          本文标题:三剑客练习

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