zoukankan      html  css  js  c++  java
  • 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的意思是,“把标准错误传送到标准输出要去的任何位置”。
  • 相关阅读:
    set--常见成员函数及基本用法
    [Swust OJ 1026]--Egg pain's hzf
    [HDU 1111]--Secret Code
    [Swust OJ 1139]--Coin-row problem
    [Swust OJ 781]--牛喝水
    [Swust OJ 1132]-Coin-collecting by robot
    [Swust OJ 249]--凸包面积
    HTTP 请求头中的 X-Forwarded-For
    HTTP 下载文件中文文件名在 Firefox 下乱码问题
    数据挖掘系列 (1) 关联规则挖掘基本概念与 Aprior 算法
  • 原文地址:https://www.cnblogs.com/zhangyafei/p/11581643.html
Copyright © 2011-2022 走看看