美文网首页
2018-09-09 Linux一些笔记 (二)

2018-09-09 Linux一些笔记 (二)

作者: Seizens_Swift | 来源:发表于2018-09-12 21:48 被阅读9次
      1. sed

    s 替换

    sed 's/Unix/unix/' instro  //不会对源文件修改
    

    g 全局

    sed 's/Unix/unix/g' instro   //不会对源文件修改
    

    -n 只从文件中析取几行 一般与p一起使用。显式指明

    sed -n '1,2p'  instro  //只显示前两行的内容
    

    不提供行号则显式查找字符串的所在的行

    sed -n '/unix/p' instro //显式unix躲在那行的内容
    

    d 删除

    sed '2,13d' instro
    sed '/unix/d' instro
    
    sed -n 'l' text 
    

    显式文件所有行,把所有不可打印的字符显示\nn(nn出为八进制),制表符为\t

      1. tr 用来转换标准输入的字符

    格式:

    tr from-char  to-char
    

    说明:其中from-char与to-char可以是一个或者多个字符,所输入的任何字符,如果在from-char中都会转化为to-char
    注:tr 必须从定向到文件中

    例:tr e r < instro
    

    -s 用来压缩to-char中连续重复的字符

    tr -s ':' '\11'
    

    -d 删除输入的字符

    格式:tr -d from-char
    
    例: tr -d ' ' <instro
    

    sed 's/ //g' instro
    

    同样的效果
    但是 tr 可能会更好一些,它比sed程序小,执行起来速度更快
    tr 只针对字符一个 ,不是字符串

      1. grep

    -i 匹配的过程中不区分大小写

    grep -i 'the'  instro  //不区分大小写匹配
    grep '[A-Z]' list  //list中包含一个大写字母的行
    grep '[0-9]' data  // data中包含数字的行
    grep '[A-Z]...[0-9]'  list //包含大写字母开头,数字结尾的5个字符的行
    grep '\.pic$' filelist  //以.pic 结尾的行
    
    

    -v 查找不包含匹配字符串的那行

    grep -v 'unix' instro
    

    -l 找出包含指定字符串的文件列表

    grep -l 'unix' *   //包含unix字符串文件的列表
    grep -l 'unix' * | wc -l  //包含该unix字符串文件的数目
    

    -n 找到匹配字符串那行前面加上相对行号

    grep -n 'unix' instro
    
      1. sort

    默认情况下,取输入文件的首列,升序排序
    -u 去除重复行
    -r 取反排序(反向排序)
    -o 把结果写入文件 sort name -o sorted_name
    -k 可选取部分内容排序

    -k Fstart.Cstart , Fend.Cend
    

    Fstart 为字段,Cstart为字符 开始
    Fend为字段,Cend为字符 结束
    一般与-t一起使用
    -t 设置分隔符
    -n 按照算术方法排序

      1. uniq 查找重复行
    uniq  infile outfile
    

    注:uniq对重复行的定义是完全匹配的连续行,所以一般处理之前会用sort排序,再用uniq处理

    root@803e41ac5ea4:/# cat test2  //原始文件内容
    aaa
    bbb
    cccc
    bbb
    aaa
    ccccc
    cccc
    root@803e41ac5ea4:/# uniq test2  //未做排序使用uniq的
    aaa
    bbb
    cccc
    bbb
    aaa
    ccccc
    cccc
    root@803e41ac5ea4:/# sort test2 | uniq  //排序后使用uniq的
    aaa
    bbb
    cccc
    ccccc
    

    -d 只输出重复行

    root@803e41ac5ea4:/# sort test2 | uniq -d
    aaa
    bbb
    cccc
    

    -c 显示该行在文中出现的次数

    root@803e41ac5ea4:/# sort test2 | uniq -c
          2 aaa
          2 bbb
          2 cccc
          1 ccccc
    

    相关文章

      网友评论

          本文标题:2018-09-09 Linux一些笔记 (二)

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