• Linux——高效玩转命令行


    0.统计(文件|压缩文件)的行数

    zcat file.gz | sed -n '$='                                         #迅速。直接打印出多少行。-n 取消默认的输出,使用安静(silent)模式    '$='  不知道是什么意思

    zcat file.gz | awk  ‘END{print NR}’                         # 迅速。解压打开文件,输出文件最后一行行号

    zcat file.gz | grep -n "" |awk -F : 'END{print $1}'    #迅速。解压打开文件,文件每行前标出行号并用冒号连接,以冒号为分隔符输出最后一行的第一列  

    zcat file.gz | wc -l                                                   #统计大文件实在是太慢了

    期待高效的方法。。。。。。

    PS:

    zcat file.gz <=> gzip -dc file.gz  #压缩文件不能直接进行统计  ;

    参考[0]文中后半部分,利用上边的快速统计文件行数命令,写了两个shell脚本去统计目录下指定后缀的文件行数。

    1.快速-批量删除文件或目录

     1-1.快速删除大文件夹(注意目录后的结束符‘/’)(对于含有海量文件的目录,不能直接rm -rf删除,这样效率很慢:)

              rsync ---delete blank/ test/              使用空文件夹 blank/ 覆盖原文件夹 test/ 

              mkdir empty_dir && rsync -a --delete empty_dir/ your_dir/ && rm -rf your_dir/ empty_dir  #得把your_dir/再删除一下,因为里边的./文件很大 

     1-2.查找并删除文件

    find ./ -type f -name "*.log" -mmin +120 -delete 删除当前目录下120min前的所有.log结尾文件

    find ./ -type f -name "*.log"-mtime +300 -delete 删除当前目录下300天前的所有.log结尾文件

    这种方式要比下边语句快2-3倍,并且当目录中文件非常多时不会出现列表过长无法删除的异常。

    find ./ -name "*.log" -mmin +120 | xargs rm -f

    find ./ -name "*.log" -mmin +120 -exec rm {} -f # -exec 表示后面执行命令 "{}"  -f表示不需要确认 <=>

    find ./ -name "*.log" -mmin +120 -exec rm -f "{}" ; #最后的分号不可少

     1-3.

    delete.sh:

    for i in `ls -d path/shell/shell_pipe/step*qsub`   # ls列出匹配上的目录  必须用-d 否则ls会把目录下的文件也都列出来
    do
    rm -r $i
    done

    for i in `ls path/*log`
    do
    rm $i
    done

    eg:快速删除目标文件中自己的qsub目录中的运行oe文件。

    /share/app/msort/bin/msort -k rn5  file | grep 'name'|grep 'qsub'|awk '{print $8}'| while read ID    #第八列是以qsub结尾的目录全路径,一个个给到$ID
    do
      for i in `ls $ID/*.[eo]*`  #匹配filename.e.12345   filename.o.12345  文件
      do
      #echo $i
      rm $i
      done
      for i in `ls $ID/*.log`   #匹配filename.log 文件
      do
      #echo $i
      rm $i
      done
    done

    参考:

    [0]http://www.jb51.net/article/61943.htm  

    [1]https://blog.csdn.net/ydyang1126/article/details/72841308    https://blog.csdn.net/shangzwz/article/details/10304469

      

  • 相关阅读:
    FLASH置于底层
    图片等比缩放
    fedora 系统使用 Broadcom BCM4312 无线网卡(转)
    ubuntu语言问题
    轻松安装、卸载Linux软件
    redhat6.0下使用vnc
    http网络安装centos 5.5系统总结
    如何在windows下搭建python的IDE开发环境
    对做技术的一点思考
    C++继承类和基类之间成员函数和虚函数调用机制
  • 原文地址:https://www.cnblogs.com/Formulate0303/p/7992410.html
Copyright © 2020-2023  润新知