美文网首页
基础-25、linux shell基础知识(三)

基础-25、linux shell基础知识(三)

作者: 赵老铁 | 来源:发表于2018-07-03 01:41 被阅读13次

    笔记内容:
    8.10 shell特殊符号cut命令
    8.11 sort_wc_uniq命令
    8.12 tee_tr_split命令
    8.13 shell特殊符号下
    相关测验题目:http://ask.apelearn.com/question/5437
    扩展

    1. source exec 区别 http://alsww.blog.51cto.com/2001924/1113112
    2. Linux特殊符号大全http://ask.apelearn.com/question/7720
    3. sort并未按ASCII排序 http://blog.csdn.net/zenghui08/article/details/7938975

    一、cut命令

    cut 分割

    -d 分隔符

    -f 指定段号

    例子:取passwd文件头2行中以:为分割符,指定显示3段

    # cat /etc/passwd | head -2 | cut -d ":" -f 1-3
    
    image.png

    -c 指定第几个字符

    例子:取passwd文件头2行的第4个字符


    image.png

    二、sort_wc_uniq命令

    1.sort 排序,默认排序为特殊字符>数字>字母(a>z)

    image.png

    -n 数字排序

    例子: #sort -n 1.txt(字母、特殊符号默认为0,排在数字前面)


    image.png

    -r 反序

    例子: # sort -nr 1.txt(按照数字倒序排列)


    image.png

    -t 分隔符

    -kn1/-kn1,n2

    2.wc 统计

    -l 统计行数

    #wc -l 1.txt //行数
    

    -m 统计字符数

    #cat -A 2.txt //显示文件所有内容
    
    #wc -m 2.txt //字符数
    
    image.png

    -w 统计词

    #wc -w 1.txt //单词,以空格符为一个单词
    
    image.png

    3.uniq去重 –-一般与sort合用

    -c 统计重复次数

     # sort 2.txt | uniq –c  //对2.txt文件排序再统计重复次数 ,截图表示123重复出现3次,456重复1次
    
    image.png

    三、 tee_tr_split命令

    1.tee 默认等价于> ,重定向且在屏幕显示

    # sort 2.txt | uniq -c | tee 4.txt //对2.txt文件排序再统计重复次数覆盖写入4.txt文件,且展示在屏幕上
    
    #>4.txt //清空4.txt文件内容
    
    image.png
    # sort 2.txt | uniq -c | tee -a 4.txt //对2.txt文件排序再统计重复次数追加写入4.txt文件,且展示在屏幕上
    
    image.png

    2.tr替换字符

     # tr 'a' 'b' //a替换成b
    
     # echo "zhaodonghui" | tr '[zdh]' '[ZDH]' //zdh替换ZDH
    
    image.png
      # tr '[a-z]' '[A-Z]' //大小写替换
    
      # echo "zhaodonghui" | tr '[a-z]' '[A-Z]' //全部转为大写
    
    image.png

    3.split切割

    -b 大小,默认单位字节

    -l 行数

    # split -b 100M bigfile //将bigfile文件切割为大小100M的多份文件
    # split -b 1000 bigfile //将bigfile文件切割为1000行的多份文件
    # split -b 100k bigfile 123 //将bigfile文件切割为123开头大小为100k的多份文件
    
    image.png

    四、shell特殊符号

    4.1.特殊符号(一)

    *任意个任意字符
    ?任意一个字符

    #注释
    

    \脱义字符
    |管道符
    1.1实验
    实现c显示结果=ab,方法为:
    1.1.1 c='ab'
    1.1.2脱义#c=$a$b

    image.png

    2.特殊符号(二)

    2.1 $变量前缀,!$组合正则里表示行尾
    

    2.2 ;多条命令写到一行,用;分割


    image.png

    2.3 ~用户家目录,正则里表示匹配符
    2.4 &放到命令后,将命令放到后台
    2.5 >正确覆盖 >>正确追加
    2.6 2>错误覆盖 2>>错误追加
    2.7 &>正确错误覆盖
    2.8 []指定任意字符中的一个 [0-9] [a-z] [A-Z] [abc]
    2.9 || 或者

    # ls 9.txt || wc -l 4.txt  //若执行ls命令1成功,则wc –l命令2不执行
    
    image.png

    2.10 &&同时满足

    # ls 9.txt &&  wc -l 4.txt //若执行ls命令1成功,才执行wc –l命令2
    
    image.png
    2.11 # [ -d 20180703 ] || mkdir 20180703 //判断目录20180703是否存在,若不存在则创建
    

    image.png

    赵老铁的简书

    相关文章

      网友评论

          本文标题:基础-25、linux shell基础知识(三)

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