美文网首页
基础-2.文件处理

基础-2.文件处理

作者: 山的那边是什么_ | 来源:发表于2019-05-11 18:31 被阅读0次

    本节将介绍Linux下使用Shell处理文本时最常用的工具: find、grep、xargs、sort、uniq、tr、cut、paste、wc、sed、awk; 提供的例子和参数都是常用的; 我对shell脚本使用的原则是命令单行书写,尽量不要超过2行; 如果有更为复杂的任务需求,还是考虑python吧;

    1.find 文件查找

    查找txt和pdf文件:

    find . \( -name "*.txt" -o -name "*.pdf" \) -print
    

    查找结尾是: llo.cpp 的文件

    find . \( -name "*llo.cpp" \)  -print
    

    注意 括号左边需要加 \ 中间还有一些空格

    正则方式查找.txt和pdf:

    find . -regex  ".*\(\.txt|\.pdf\)$"
    

    -iregex: 忽略大小写的正则

    否定参数 ,查找所有非txt文本:

    find . ! -name "*.txt" -print
    
    

    指定搜索深度,打印出当前目录的文件(深度为1):

    find . -maxdepth 1 -type f
    

    2. grep 文本搜索

    grep match_patten file
    

    常用参数

    -o 只输出匹配的文本行 VS -v 只输出没有匹配的文本行
    -c 统计文件中包含文本的次数
    grep -c “text” filename
    -n 打印匹配的行号
    -i 搜索时忽略大小写
    -l 只打印文件名
    在多级目录中对文本递归搜索(程序员搜代码的最爱):

    grep "class" . -R -n
    
    

    匹配多个模式:

    grep -e "class" -e "vitural" file
    
    grep -e "class" -e "main" *
    

    3 xargs 命令行参数转换

    xargs 能够将输入数据转化为特定命令的命令行参数;这样,可以配合很多命令来组合使用。比如grep,比如find; - 将多行输出转化为单行输出

    参考

    https://linuxtools-rst.readthedocs.io/zh_CN/latest/base/03_text_processing.html#grep

    相关文章

      网友评论

          本文标题:基础-2.文件处理

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