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编程 sortwc命令

Linux Shell常用技巧 sort uniq tar split

linux shell 去重 uniq和sort的区别

sort 命令详解

Linux centos7 shell特殊符号cut命令sort_wc_uniq命令tee_tr_split命令shell特殊符号

linux命令:du、sort、more、cat、less