linux shell sort指令(sort命令)排序
Posted Dontla
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux shell sort指令(sort命令)排序相关的知识,希望对你有一定的参考价值。
文章目录
sort命令用法
sort是Linux shell中的一个命令,用于对文本文件或标准输入进行排序。常见用法如下:
排序整个文件:sort filename
root@ubuntu:/userdata/test#
root@ubuntu:/userdata/test# cat test.sh
#!/bin/bash
set -u
echo "Hello World!"
echo "The value of variable is $VAR"
echo "Hello World 2!"root@ubuntu:/userdata/test#
root@ubuntu:/userdata/test#
root@ubuntu:/userdata/test#
root@ubuntu:/userdata/test#
root@ubuntu:/userdata/test#
root@ubuntu:/userdata/test# sort test.sh
#!/bin/bash
echo "Hello World!"
echo "Hello World 2!"
echo "The value of variable is $VAR"
set -u
root@ubuntu:/userdata/test#
从标准输入读取并排序:sort
$ cat data.txt
apple
cherry
date
banana
$ cat data.txt | sort
apple
banana
cherry
date
排序后写入文件:sort filename > sortedfile
略
反向排序:sort -r filename
root@ubuntu:/userdata/test#
root@ubuntu:/userdata/test# cat test.sh
#!/bin/bash
set -u
echo "Hello World!"
echo "The value of variable is $VAR"
echo "Hello World 2!"root@ubuntu:/userdata/test#
root@ubuntu:/userdata/test#
root@ubuntu:/userdata/test#
root@ubuntu:/userdata/test# sort -r test.sh
set -u
echo "The value of variable is $VAR"
echo "Hello World 2!"
echo "Hello World!"
#!/bin/bash
root@ubuntu:/userdata/test#
按数字顺序排序:sort -n filename
$ echo -e "3\\n1\\n2" | sort -n
1
2
3
说明:
- -e 选项表示把转义字符当做普通字符处理
- echo 命令输出"3\\n1\\n2"字符串
- sort -n 命令把从标准输入读取的字符串按数字顺序排序,-n 选项表示以数字方式排序
按第x列排序:sort -k [x] filename(注意这个列指的不是字符,而是以空格区分的元素)(-k后与数字连着写,不用空格也行)
$ cat sample.txt
B 12
D 15
A 8
C 20
$ sort -n -k 2 sample.txt
A 8
B 12
D 15
C 20
去重排序:sort -u
举个例子,如果我们有一个文件test.txt:
apple
banana
apple
orange
pear
banana
我们可以使用sort -u test.txt命令,可以将重复的行去重:
apple
banana
orange
pear
更多用法可以使用man sort命令查看。
以上是关于linux shell sort指令(sort命令)排序的主要内容,如果未能解决你的问题,请参考以下文章
Linux Shell常用技巧 sort uniq tar split
Linux centos7 shell特殊符号cut命令sort_wc_uniq命令tee_tr_split命令shell特殊符号