美文网首页
处理数据文件(一)

处理数据文件(一)

作者: Peng_001 | 来源:发表于2020-05-29 16:29 被阅读0次

    sort

    sort 命令会按照会话指定的默认语言的排序规则对文本文件中的数据进行排序。

    mugpengdembp:test mugpeng$ cat f
    123
    12
    429
    832
    9
    93
    83
    2323
    mugpengdembp:test mugpeng$ sort f
    12
    123
    2323
    429
    83
    832
    9
    93
    

    不难发现,sort 命令并不是按照数字大小进行了排序,而是把数字当做字符来执行标准的字符排序。因此我们可以增加-n选项,告诉sort 命令把数字识别为数字并按值正序排列。

    $ sort -n a.txt 
    9
    12
    83
    93
    123
    429
    832
    2323
    

    其他的选项还有-M 可以识别三字符的月份名。

    除此之外-k 指定所按照的排序的字段名,以及-t 指定一个用来区分键位置的字符。二者也非常有用。-r则可以使结果逆序排列,可以和-n搭配使用。

    $ sort -t ':' -k 3 -n /etc/passwd
    

    输入以上代码,就可以按照以: 为分割,按3字段的内容进行数值排序了。

    root:*:0:0:System Administrator:/var/root:/bin/sh
    daemon:*:1:1:System Services:/var/root:/usr/bin/false
    _uucp:*:4:4:Unix to Unix Copy Protocol:/var/spool/uucp:/usr/sbin/uucico
    _taskgated:*:13:13:Task Gate Daemon:/var/empty:/usr/bin/false
    _networkd:*:24:24:Network Services:/var/networkd:/usr/bin/false
    

    grep

    grep 命令非常方便帮助我们从指定的文件中查找包含匹配指定模式的字符的行,其输出结果就是包含了匹配模式的行的信息。

    grep a file1 表示搜寻file1 文件中包含 a 的文本,并返回该行的内容。

    grep 常用的选项包括

    -v # 反向搜索,输出不匹配的行
    -n # 显示匹配行所在的行号
    -c # 显示有多少行包含匹配信息
    -e # 指定多个匹配模式
    

    例子

    $ grep -vn 1 a.txt 
    3:429
    4:832
    5:9
    6:93
    7:83
    8:2323
    

    grep 是非常强大的正则表达式工具。其他版本还有egrep 允许POSIX 拓展正则表达式,以及fgrep

    相关文章

      网友评论

          本文标题:处理数据文件(一)

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