linux sort 指令:排序

思考:如何获取当前目录下文件的对应文件名、文件大小两列,并按照文件大小进行排序,并保存到文件中?

 ls -l | awk '{print $9,$5}' | sort -t " " -k 2 -n -o st.txt

#如果要从大到小排序
 ls -l | awk '{print $9,$5}' | sort -t " " -k 2 -n  -r -o st.txt

总结下sort的用法:

Usage: sort [-bcCdfigMmnrsuz] [-kPOS1[,POS2] ... ] [+POS1 [-POS2]]
 [-S memsize] [-T tmpdir] [-t separator] [-o outfile] [--batch-size size] 
[--files0-from file] [--heapsort] [--mergesort] [--radixsort] [--qsort] [--mmap]
 [--human-numeric-sort] [--version-sort] [--random-sort [--random-source file]] [--compress-program program] [file ...]

常用的来说:

sort  [-ntkro] 文件名 

-n 采取数字排序

-t  指定分隔符

-k 指定第几列

-r  反向排序

-o filename 输出到文件

即可以完成常见的排序需求了;

eg:

# 对输出文件进行排序
$ cat sort.txt 
a:3
b:14
c:2
d:6

# 按照第二列大小排序
$ cat sort.txt | sort -t ":" -k 2
b:14
c:2
a:3
d:6
发布了99 篇原创文章 · 获赞 25 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/weixin_39568531/article/details/102990005