zoukankan      html  css  js  c++  java
  • 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 ' ': 删除空格和换行

  • 相关阅读:
    Windows7,Ubuntu双系统,用MBR引导
    把Adblock Plus的过滤规则应用到IE9
    Linux shell学习
    vxworks下面网络连接调试的搭建
    uboot网卡成功识别
    uboot功能扩展篇
    uboot终于显示串口信息了
    uboot解决flash failed无限挂起的问题
    问题解决随笔
    琐事皆休,开始找工作~
  • 原文地址:https://www.cnblogs.com/sunshine-2015/p/6838766.html
Copyright © 2011-2022 走看看