• linux 命令 — sort、uniq


    sort uniq

    sort:对行或者文本文件排序
    uniq:去除重复的行

    常用

    sort -n file.txt
    按数字进行排序

    sort -r file.txt
    按逆序进行排序

    sort -M file.txt
    按月份进行排序

    sort -C file
    如果返回0表示已经排序

    sort -nC file
    返回0表示已经按照数字排序

    sort -m sorted_file1 sorted_file2
    合并两个已经排过序的文件,而且不需要对合并后的文件再次排序

    按键或者列进行排序

    sort -nrk 1 data.txt
    -n,表示按照数字排序,-r表示使用逆序,-k n表示选择第n列进行排序

    sort -nk 1, 2 file
    按照第1-2两个字符进行排序,-k n1, n2 可以指定排序的键值

    sort -z file
    排序之后使用''作为分隔符

    uniq

    uniq只能用于排过序的输入
    sort unsort.txt | uniq
    sort -u unsort.txt
    uniq sorted.txt

    sort unsorted.txt | uniq -c
    统计各行在文件中出现的次数

    sort unsorted.txt | uniq -d
    找出文件中重复的行

    sort data.txt | uniq -s 2 -w 3
    将排序后文件中第3-6个字符作为键进行唯一值过滤,-s n 表示跳过前n个字符,-w m 表示选择的字符个数

    uniq -z sorted.txt
    输出内容使用""作为分隔符

    使用uniq生成字符串样式

    输入:ahebhaaa
    输出:4a1b1e2h

    echo "ahebhaaa" | sed 's/[^.]/& /g' | sed '/^$/d' | sort | uniq -c | tr -d ' '
    sed 's/[^.]/& /g': 将每一个字符后面追加一个换行符(将所有的字符使用该字符加" "替换),"&"表示前面正则表达式中匹配到的内容,这里也就是一个字符
    sed '/^$/d': 搜索所有的空行并删除
    sort: 按照字母表顺序排序
    uniq -c: 统计每个字符出现的次数
    tr -d ' ': 删除空格和换行

  • 相关阅读:
    判断ios版本
    DBL_EPSILON和 FLT_EPSILON的用法
    __bridge,__bridge_retained和__bridge_transfer的意思,区别与使用
    ios俩个APP之间跳转、传值,以及直接跳转到指定app页面 或者 app 评价页面 的方法
    如何参与GitHub开源项目
    第202题:快乐数
    第217题:存在重复元素
    第234题:回文链表
    第242题:有效的字母异位词
    JAVASRIPT
  • 原文地址:https://www.cnblogs.com/sunshine-2015/p/6838766.html
Copyright © 2020-2023  润新知