您的位置:首页 > 运维架构 > Linux

linux 命令 — sort、uniq

2018-02-28 09:07 447 查看

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


排序之后使用'\0'作为分隔符

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


输出内容使用"\0"作为分隔符

使用uniq生成字符串样式

输入:ahebhaaa

输出:4a1b1e2h

echo "ahebhaaa" | sed 's/[^.]/&\n/g' | sed '/^$/d' | sort | uniq -c | tr -d ' \n'


sed 's/[^.]/&\n/g': 将每一个字符后面追加一个换行符(将所有的字符使用该字符加"\n"替换),"&"表示前面正则表达式中匹配到的内容,这里也就是一个字符

sed '/^$/d': 搜索所有的空行并删除

sort: 按照字母表顺序排序

uniq -c: 统计每个字符出现的次数

tr -d ' \n': 删除空格和换行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: