一些感觉不错的命令

1.输入文件的最后5行到另一个文件中

         tail -5 文件名|xargs echo >> 另一个文件名

     2.查找文件中包含hello的行

        grep –i “hello” a.txt      grep hello a.txt

     3.打印匹配的的字符并显示该行行号

        sed -e ‘/music/=’ temp.txt

     4.查找当前目录下所有目录名为CVS的子目录的命令

 

        find ./ -name “CVS” –type d

     5.删除当前目录下所有目录名为CVS的子目录的命令

  find ./ -name “CVS” –type d|xargs rm –rf

  echo CVS/ |xargs rm –rf

        ls -l | awk '/^d/&&/CVS$/{print $NF}' | xargs rm -rf

     6.如何把一个文件的内容添加到另一个文件的末尾

    cat ss.txt >> aa.txt  把ss.txt的内容追加到aa.txt

 7.如何实时的显示一个文件的输出

 

    tail –f a.txt   tail –F a.txt

 8.删除.svn             

    find -name '.svn' |xargs rm –rf

9.查询一个文件的10-20行,然后再复制到另一个文件里

       sed –n ’10,20’p  /root/ssh-demo/aa.sh|xargs  echo  >>  /var/www/a.php 

       xargs 用于构造数列或者执行命令,但是发现不换行,然后这么写,

       sed –n ’10,20’p /root/ssh-demo/aa.sh|xargs  -d /n echo >>  /var/www/a.php

10.删除数量比较多的文件
       ls | xargs -n 20 rm -rf
       ls
当然是输出所有的文件名(用空格分割)
       xargs就是将ls的输出,每20个为一组(以空格为分隔符),作为rm -rf的参数

        也就是说将所有文件名20个为一组,由rm -rf删除,这样就不会超过命令行的长度了

11.对大文件去重复行和排序

        简单的用法如下,如一个文件名:happybirthday.txt

        cat happybirthday.txt (显示文件内容)

        Happy Birthday to You!

        Happy Birthday to You!

        Happy Birthday Dear Tux!

        Happy Birthday to You!

 

        cat happybirthday.txt|sort (排序)

        Happy Birthday Dear Tux!

        Happy Birthday to You!

        Happy Birthday to You!

        Happy Birthday to You!

 

        cat happybirthday.txt|sort|uniq (去重复行)

         Happy Birthday Dear Tux!

         Happy Birthday to You!

 

但有时碰到一个大文件时(例如G级的文件),用上面的命令时报错,提示空间不足。我尝试了一下,最后是用 split 命令把大文件分割为几个小文件,单 独排完序后再合并 uniq

split -b 200m  happybirthday.big Prefix_

用-b参数切割happybirthday.big,小文件为200M。切割后的文件名前缀是Prefix_

 

再分别sort

sort Prefix_aa >Prefix_aa.sort

sort Prefix_ab >Prefix_ab.sort

 

再用 sort -m合并,再 uniq

cat Prefix_aa.sort Prefix_ab.sort |sort -m |uniq

 

上面的代码排序后还是不满意的话,可尝试下面的:

sort -sm Prefix_aa.sort Prefix_ab.sort|uniq

 

sort 与 uniq 命令还有许多有用的参数,如sort -m、uniq -u、uniq -d等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hankmiao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值