Linux——高效玩转命令行

【0】统计文件or压缩文件的行数

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

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

 

  

转载于:https://www.cnblogs.com/Formulate0303/p/7992410.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值