• Linux上天之路(十四)之Linux数据处理


    主要内容

    • 数据检索

    • 数据排序

    • 数据去重

    • 重定向

    1. 数据检索

    常和管道协作的命令 – grep

    grep:用于搜索模式参数指定的内容,并将匹配的行输出到屏幕或者重定向文件中,常和管道协作的命令 – grep。

    还有egrep和fgrep两个命令。

    egrep可以使用扩展的正则表达式

    fgrep没有元字符与普通字符的区别

    grep egrep用别名加了—color之后才好理解。

    • grep命令

    grep, egrep, fgrep - print lines matching a pattern

    命令语法
    grep [OPTIONS] PATTERN [FILE...]
    命令选项
    -r  递归
    -v  反取
    -i  忽略大小写
    -n  显示行号
    -c  计数
    -w  匹配一个词
    -l  只给出匹配的文件名
    -L  列出不匹配的文件名
    -o  只列出匹配的内容
    -E 支持扩展的正则表达式
    -q 在标准输出中不输出任何内容,即静默模式
    PATTERN
    匹配字符串
    example 
    对文件夹的操作
    grep -r "root" /etc   递归检索/etc下所有文件中包含root的文件
    grep -l -r "root" /etc  列出包含 root字符串的文件名
    grep -L -r "root" /etc  列出不包含root字符串的文件名
    对文件的操作
    grep "root" /etc/passwd   找出文件中包含字符串root的行
    grep -v "root" /etc/passwd 找出文件中不包含字符串root的行
    grep -n "root" /etc/passwd  找出文件中包含字符串root的行,并显示行号
    grep -c "root" /etc/passwd  统计文件中包含字符串root的行数
    grep -w "root" /etc/passwd  匹配的字符串必须是一个完整单词  而不是包含
    grep -o "root" /etc/passwd  只显示匹配的内容
    grep -q "root" /etc/passwd  只匹配不输出
    可以使用$?来监测结果,一般脚本中使用较多
    [root@www ~]# grep -q "root" /etc/passwd
    [root@www ~]# echo $?
    0
    [root@www ~]# grep -q "root1" /etc/passwd
    [root@www ~]# echo $?
    
    • 管道: |

    上一个命令的输出作为下一个命令的输入

    cat /etc/passwd | head -2

    2. 数据排序

    • 常和管道协作的命令 - sort

    sort - sort lines of text files

    -n  按数字排序
    -r  反序排序
    -o  结果输出到文件
    -t  分隔符  sort -n -t: -k3 /etc/passwd
    -k  关键字 (按照指定列来排序)
    example:
    ps -a -o comm,vsz,rss,pmem |sort -nr -k 3
    

    3. 数据去重

    常和管道协作的命令 - uniq

    uniq - report or omit repeated lines

    -c  每行出现的次数
    -d  仅显示重复行
    -u  仅显示不重复行
    -i  忽略大小写
    -f N  跳过前面N个部分 (空格分开)
    -s N  跳过前面N个字符 (一般字符)
    

    4. 重定向

    > 重定向输入

    >> 重定向追加

    < 重定向输出

    << 重定向追加输出

    linux中使用
    0 代表标准输入 stdin
    1 代表标准输出 stdout
    2 代表标准错误输出  stderr
    把输入输出和重定向混合使用。
    2>把标准错误流重定向到文件中。
    2>&1或>&把标准错误流与标准输出流结合在一起。
    2>>是什么情况?
    2>&1的意思是,“把标准错误传送到标准输出要去的任何位置”。
  • 相关阅读:
    CentOS7 部署K8S集群成功后,重启就不能用了???k8s环境自启动
    k8s环境部署本地.net core web项目
    CentOS7 部署K8S集群,最新版1.17.3-0
    VM安装Linux Centos7.0虚拟机
    Dapper.Contrib拓展及数据库生成实体
    解决EF没有生成字段和表说明
    C#使用AutoMapper6.2.2.0进行对象映射
    .NET Core2.0+MVC 用Redis/Memory+cookie实现的sso单点登录
    Asp.net Core2.0 缓存 MemoryCache 和 Redis
    目录
  • 原文地址:https://www.cnblogs.com/zhangyafei/p/11581643.html
Copyright © 2020-2023  润新知