zoukankan      html  css  js  c++  java
  • 几个常用的文本处理shell 命令:find、grep、sort、uniq、sed、awk

    find 文件查找

    查找txt和pdf文件

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

    查找所有字母开头的文件

    1
    find . -name "[a-a]*"

    否定参数->查找所有非txt文本

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

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

    1
    find . -maxdepth 1 -type f

    正则方式查找.txt和pdf

    1
    2
    find . -regex  ".*(.txt|.pdf)$"
    -iregex: 忽略大小写的正则

    查找目录下属性为755的文件

    1
    find . -prem 755

    查找所属主为root的文件

    1
    find -user root

    寻找大于2k的文件

    1
    find . -type f -size +2k

    找到文件后续动作

    删除当前目录下所有的avi文件

    1
    find . -type f -name "*.avi" -delete

    执行动作(强大的exec)

    1
    find . -type f -user root -exec chown root {} ; //将当前目录下的所有权变更为root

    grep 文本搜索

    在file文件中过滤掉字符串'str'所在的行

    1
    grep -v "str" file

    在file文件中查找时间在2017:22:50~2017:22:59所在的行

    1
    grep -E "2017:22:5[0-9]" file

    在file文件中查找不包括360的行

    1
    grep -E "^[^360]" file

    在file文件中查找包括w和t的行

    1
    grep -E "w*t" file

    在file文件中查找大于560小于893的行

    1
    grep -E "[5-8][6-9][0-3]"

    在file文件中查找包含两个9的行

    1
    grep -E "9{2}" file

    查找大于两个9的行

    1
    grep -E "9{2,}" file

    查找file文件中的空行

    1
    grep -E "^$" file

    查找包括?的行

    1
    grep "?" file

    查找文件中以w开头的行

    1
    grep -E "^w" file

    查找文件中不是以w开头的行

    1
    grep -E "^[^w]" file

    awk 数据流处理工具

    查找出日志文件中的每一列

    1
    awk '{print $0}' log.log

    查找出文件中的第一列和第七列

    1
    awk '{print %$1 " "$7}' log.log

    ~匹配192.168.10.2的ip地址统计。!~为不匹配

    1
    cat file | awk '$0 !~ /192.168.10.2/' | grep 'php' |wc -|

    sed 行定位

    只打印第二行,不打印其它行的数据

    1
    sed -n '2'p file

    从第一行到第九行的记录

    1
    sed -n '1,9'file

    打印匹配php的行

    1
    sed -n '/php/p file

    打印从第九行到匹配php的之间所有行

    1
    sed -n '9,/php/'p file

    把第一行和第二行全部删除(非文件删除)

    1
    sed '1,2'd file

    Uniq行定位的使用

    打印紧挨的重复行出现的次数

    1
    uniq -c file

    只打印重复的行

    1
    uniq -d file

    把apache网站的所有访问ip统计出来,并打印统计次数

    1
    awk '{print $1}' /var/log/httpd/access_log | sort | uniq -c

    sort排序的使用

    把文件喊字母的圣墟进行排序

    1
    sort file

    把文件按照字母的降序进行排序

    1
    sort -r file

    为进行分割后的第一列来排序

    1
    cat file | sort -t: -k1 -r
  • 相关阅读:
    Linux下 Nginx 启动 重启 关闭
    在Idea中 的terminal 使用 git
    前端页面出现乱码
    Mac下Eclipse(Oxygen)添加Tomcat插件
    Linux下vsftp匿名用户配置
    500 OOPS: vsftpd: refusing to run with writable anonymous root
    FTP数字代码的意义
    CentOS 6.3下安装Vsftp,虚拟用户
    CentOS 6.3 下 vsftp搭建
    CentOS 6.3安装配置LAMP服务器(Linux+Apache+MySQL+PHP5)
  • 原文地址:https://www.cnblogs.com/changxr/p/8622951.html
Copyright © 2011-2022 走看看