• Linux下find一次查找多个指定类型文件,指定文件或者排除某类文件,在 GREP 中匹配多个关键 批量修改文件名等


    http://blog.sina.com.cn/s/blog_62e7fe670101dg9d.html

    linux下二进制文件查找:

    strings 0000.ts | grep -o "T"  | wc -l

    grep _initcall_.*1$ ./aa > a1

     2982  find . -regex '.*.c|.*.cxx|.*.cpp|.*.h'
     2983  find . -regex '.*.c|.*.cxx|.*.cpp|.*.h'
     2984  find . -regex '.*.c|.*.cxx|.*.cpp|.*.h' | xargs grep "malloc" -rn
     2985  find . -regex '.*.c|.*.cxx|.*.cpp|.*.h' | xargs grep "malloc" -rn > mem.malloc
     2986  vim mem.malloc
     2987  find . -regex '.*.c|.*.cxx|.*.cpp|.*.h' | xargs grep "free" -rn > mem.free
     2988  find . -regex '.*.c|.*.cxx|.*.cpp|.*.h' | xargs grep "strdup" -rn > mem.strdup
     2989  find . -regex '.*.c|.*.cxx|.*.cpp|.*.h' | xargs grep "realloc" -rn > mem.realloc
     2990  find . -regex '.*.c|.*.cxx|.*.cpp|.*.h' | xargs grep "calloc" -rn > mem.calloc
     2991  find . -regex '.*.c|.*.cxx|.*.cpp|.*.h' | xargs grep "new" -rn > mem.new
     2992  find . -regex '.*.c|.*.cxx|.*.cpp|.*.h' | xargs grep "delete" -rn > mem.delete 

    批量修改文件名

    rename 's/.pkt/.aac/' *

    http://any2sky.blog.163.com/blog/static/468518032010914101851175/

    将通过find命令找到的文件拷贝到一个新的目录中:

    cp `find  . -name "*pcm*.[c,h]"` tmp/ -rf

    方法一    www.2cto.com  
    命令如下:
    find src_dir -name "access.log.2011102[2-6]*" -exec cp {} dst_dir ;
     
    拷贝文件到远程主机上的目标目录的命令:
    find src_dir -name "access.log.2011102[2-6]*" -exec scp {} 用户名@主机ip:dst_dir ;
     
    方法二
    find src_dir -name "access.log.2011102[2-6]*" |xargs -i cp {} dst_dir
    find src_dir -name "access.log.2011102[2-6]*" |xargs -I {} cp {} dst_dir
     
    拷贝文件到远程主机上的目标目录的命令:
    find src_dir -name "access.log.2011102[2-6]*" |xargs -i scp {} 用户名@主机ip:dst_dir
    find src_dir -name "access.log.2011102[2-6]*" |xargs -I {} scp {} 用户名@主机ip:dst_dir
     
    src_dir 源目录
    dst_dir 目标目录

    access.log.2011102[2-6]* 文件名的正则表达式,获取文件的条件

    Linux下find一次查找多个指定文件或者排除某类文件,在 GREP 中匹配多个关键字的方法
    (1)Linux下find一次查找多个指定文件:
    查找a.html和b.html

    1. find . -name "a.html"  -name "b.html"  


    find . -regex '.*.txt|.*.doc|.*.mp3'

    1. find . -regex '.*.txt|.*.doc|.*.mp3'  
    2. ./a.txt  
    3. ./a.doc  
    4. ./a.mp3  


    (2)排除某些文件类型:
    排除目录下所有以html结尾的文件:

    1. find . -type f ! -name "*.html"    
    1. find . -type f ! -name "*.html"       
    2. ./ge.bak.02.09  
    3. ./ge.html.changed.by.jack  
    4. ./a.txt  
    5. ./a.doc  
    6. ./a.mp3  


    (3)排除多种文件类型的示例:

    1. find . -type f ! -name "*.html" -type  f ! -name "*.php" -type  f ! -name "*.svn-base"  -type  f ! -name "*.js"  -type  f ! -name "*.gif"  -type  f ! -name "*.png"  -type  f ! -name "*.cpp"  -type  f ! -name "*.h"  -type  f ! -name "*.o"  -type  f ! -name "*.jpg"  -type  f ! -name "*.so"  -type  f ! -name "*.bak"  -type  f ! -name "*.log"   


    (3)在 GREP 中匹配多个关键字的方法:
    grep查找多个数字的文件:
    -r 递归,-E:正则  -l:只显示文件名

    1. root@116.255.139.240:~/a# grep -r -E '0341028|100081|10086|10001' *  
    2. a.txt:100081  
    3. b.txt:10086  
    4. c/cc.txt:0341028  
    5. c/cc.txt:100081  
    6. c/cc.txt:10086  
    7. c/cc.txt:10001  
    8. c.txt:10001  
    9. d.txt:0341028  
    1. grep -r  -E -l '0341028|100081|10086|10001' *     
    2. a.txt  
    3. b.txt  
    4. c/cc.txt  
    5. c.txt  
    6. d.txt  


    多种类型文件示例:

    1. find . -name "*.html" -o -name "*.js"|xargs grep -r "BusiTree"   



    用Awk:

    1. find . -name "*.php"|awk '{print "cat " $0 " |grep -H dbsys.mxxxx.justwinit.cn"}'|sh  
  • 相关阅读:
    cmake学习笔记之add_library、target_link_libraries和link_directories
    Linux的.a、.so和.o文件及链接时的命名
    【CH2401】送礼物
    【POJ1011】Sticks
    【CH2101】可达性统计
    【CH2201】小猫爬山
    【HNOI2002】营业额统计
    【洛谷P3128】最大流
    【JLOI2014】松鼠的新家
    【洛谷P4552】IncDec Sequence
  • 原文地址:https://www.cnblogs.com/jingzhishen/p/3746936.html
Copyright © 2020-2023  润新知