linux命令之排序命令sort命令

linux命令之排序命令sort命令,第1张

sort命令是对文件进行排序,并将排序的结果输出到屏幕,不影响原文件

以行为单位,将每一行作为一个单位,相互比较,比较原则是从首字符向后,以此按ASCII码进行比较,最后升序输出

参数

-b 忽略每行前面开始处的空格

-d 只按照英文字母,数字,空格字符排序,忽略其他字符

-m 将几个排序好的文件进行合并

-n 依照数值的大小进行排序,如果是按照数值大小排序一定要加 -n ,否则就会出现 10 比2 小的情况,因为默认比较数值是先比较第1位的,后面的位不考虑

-o 将排序好的结果输出到文件, 也可以使用重定向符号 输出到文件中

-r 以相反的顺序来排序, 默认是升序

1、用CRT软件连接一个Linux系统 。

2、打开需要查看的文件夹。 以 tmp为例。

3、用 ll 命令 查看有哪些文件。

4、默认为按照大小进行排序。 需要按照时间进行排序。

5、用 ll -t  命令进行时间排序,这样是默认为降序。

6、用 ll -t | tar 命令进行时间排序,这样为升序。

一个比较经典的问题:

如果线上机器的磁盘占用率超级高,怎么办?

这时候优先想到的肯定是,定位到占用磁盘空间最大的那些文件,然后把可以删的给删掉。

那么,问题来了,如何定位到占用磁盘空间最大的文件?

一个办法是执行如下命令:

里面涉及三个指令:du、sort、more

既然用到了,就顺便多了解一下这三个指令的用法,算是做下个人笔记。

首先是du

作用:用来查看文件所占用的磁盘情况。

格式:du [选项] [文件]

可用选项(如下为du --help展示的内容):

*** 作示例:

对几个比较常用的选项单独拿出来,在机器上实际 *** 作,效果如下:

首先,当前目录如下:

du:

其实吧,从图里面可以看到,使用“du”的时候,最后一行就当前目录的磁盘使用总量,所以,感觉一般情况下-c这个选项并没有什么用。

du -s:只计算总量

不过,注意:-s与-a不能同时存在,会报错的。

sort

作用:对输出的结果进行排序

可用选项:

-r:代表逆序排序

-n:按照字符串数值排序

-g:按照常规数值排序

-f:忽略字母大小写

实测效果:

首先是测试文件的原始状态:

测试一:sort

可以发现:

空行排在了第一位;

不管数字有多大,字符串都会排在数字的后面;

数字之间排序的时候,优先考虑首位数字(感觉是把数字也当成了一个字符串进行排序);

more

作用:用于一页一页地展示文件内容。

几个常用 *** 作:

空格:翻到下一页

b:翻到上一页

/:启动字符串搜索(类似于vim)

此外:

more +n XXX:从XXX文件的第n行开始展示

more -n XXX:展示XXX文件,并且将n行视为一页,也就是按空格时,只会显示后续的N行

cat

作用:一次性的展示所有文件内容

cat有两个比较有用的选项:

-n:输出所有行号

-b:只对非空行输出行号

此外,

cat支持同时输出多个文件的内容:cat XXX YYYY ZZZZ

并且,cat可以与more结合使用:cat XXX | more 或者 cat XXX YYYY ZZZZ | more 或者 cat -n XXX | more

less:

作用:对文件或者输出内容进行分页展示,并且less可以用于打开多个文件

常用 *** 作:

j:向上滚动一行

k:向下滚动一行(类似于vim)

g:跳到第一行

G:跳到最后一行

b:向上翻一页

空格:翻页

n%:跳转到整个文件的n%处

:e :在使用less打开多个文件时,使用“:e”选择跳转到其他文件去

/:进行字符串搜索

v:启动编辑

常用选项:

-N:在每一行前面都显示行号

-m:显示读取文件的百分比

-M:显示读取文件的百分比、行号和总行数

注意:

其他两个比较简单的指令:

head:显示一个文件的前N行

用法:head -n 行数 文件名

tail:显示一个文件的最后N行

用法:tail -n 行数 文件名

不过,使用tai的时候,因为-f选项可以自动显示新增加的内容,所以经常会使用如下方式:

tail -f 文件名


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/8538894.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-17
下一篇 2023-04-17

发表评论

登录后才能评论

评论列表(0条)

保存