在Linux系统下,命令行是最常用的操作方式之一。当我们需要对数据进行排序以及取得更大值时,命令行也是十分实用的工具。本文将会介绍如何在Linux命令行中快速地进行排序和取值更大值的方法。
创新互联建站专注于企业营销型网站、网站重做改版、大石桥网站定制设计、自适应品牌网站建设、H5技术、商城网站开发、集团公司官网建设、成都外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为大石桥等各大城市提供网站开发制作服务。
一、快速排序
1. sort命令
sort命令是Linux系统自带的一个排序命令,它可以将一个文本文件的内容按照行为单位进行排序。sort命令的使用方法如下:
[pln] view pln copy
sort [OPTION]… [FILE]…
其中,[OPTION]是sort命令的可选参数,[FILE]是待排序的文件。
sort命令的一些常用选项如下所示:
-d:按照字典序排序;
-n:按照数值大小排序;
-r:逆序排序;
-k:指定排序的列号或者区间。
例如:
[pln] view pln copy
sort -n FILE_NAME
将会对文件FILE_NAME的内容按照数值大小进行排序。
[pln] view pln copy
sort -r -k 3,3 FILE_NAME
将会对文件FILE_NAME的内容按照第3列逆序排序。
2. awk命令配合sort命令
awk命令是一个文本处理工具,它可以支持各种对文本内容的操作。awk命令和sort命令结合使用可以实现更加有用的功能。
例如,我们有一个文件FILE_NAME,其中每一行是由逗号分隔的三个数值,现在我们需要按照第三列进行排序。可以使用如下命令:
[pln] view pln copy
awk -F ‘,’ ‘{print $3 “,” $0}’ FILE_NAME | sort | cut -d ‘,’ -f 2-
其中,-F参数用来指定分隔符,awk的语句表示将第三列的值移到行首,并在第三列的值与原来的内容之间加上一个逗号。 then使用sort命令排序,最后使用cut命令删除逗号并将第三列的值移到行尾。其实,这里将第三列移到行首遵循的是一种类似于数据库SQL语句中的“group by”从句,这个语句可以将3处相同数字的行合并成一行。这个技巧可以在某个条件下帮您找出文件里前X个数量最多的简历、共享文件、URL等。
这样,就可以按照第三列的数值大小对文件FILE_NAME进行排序了。
二、取值更大值
1. 使用sort命令
sort命令不仅可以对文件内容进行排序,还可以获得更大值。例如,我们有一个文件FILE_NAME,其中每一行是由逗号分隔的两个数值,现在我们需要取得第二列的更大值,可以使用如下命令:
[pln] view pln copy
sort -t ‘,’ -k 2,2nr FILE_NAME | head -n 1 | cut -d ‘,’ -f 2
其中,sort命令的-t参数指定分隔符,我们这里选择逗号。-k参数用来指定按照第二列进行排序,nr表示逆序排序。则使用head命令会从排好序的文件中选择之一个,也就是更大值。最后使用cut命令取出更大值的值并输出。这里我们只输出第二列的值,因此f=2。
2. 使用awk命令
awk命令也可以处理文本文件并计算更大值。例如,我们有一个文件FILE_NAME,其中每一行是由逗号分隔的两个数值,现在我们需要取得第二列的更大值,可以使用如下命令:
[pln] view pln copy
awk -F ‘,’ ‘{if ($2>max) max=$2} END {print max}’ FILE_NAME
其中,-F参数指定文本文件中的分隔符,由于是逗号分隔的文件,则将-F参数指定为逗号。then使用awk命令计算更大值。if语句用来逐行比较每一行的第二列与更大值,确保找到文件中的更大值。结束时使用END语句,打印更大值。
本文介绍了Linux命令行中的快速排序和取值更大值方法。sort命令是一个自带的排序工具,它可以按照不同的选项对文件内容进行排序,取得文件中的更大值。awk命令也可以用来处理文本文件并计算更大值。这些命令是Linux系统中最常用的工具之一,它们使得我们可以轻松地对文件进行处理和分析。
成都网站建设公司-创新互联,建站经验丰富以策略为先导10多年以来专注数字化网站建设,提供企业网站建设,高端网站设计,响应式网站制作,设计师量身打造品牌风格,热线:028-86922220Linux存在着许多不同的Linux版本,但它们都使用了
Linux内核
。Linux可安装在各种计算机硬件设备中,比如手机、
平板电脑
、路由器、视频游戏控制台、台式计算机、大型机和
超级计算机
。下面让我们一起去了解Linux TOP命令 按内存占用排序和按CPU占用排序。
Linux TOP命令 按内存占用排序和按CPU占用排序:
:在
命令行
提示符执行top命令
:输入大写P,则结果按CPU占用降序排序。输入大写M,结果按内存占用降序排序。(注:大写P可以在capslock状态输入p,或者按Shift+p)
另外:
认识top的显示结果
top命令的显示结果如下所示:
top – 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48 Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombie Cpu(s): 0.3% us, 1.0% sy, 0.0% ni, 98.7% id, 0.0% wa, 0.0% hi, 0.0% si Mem:k total,k used, 17616k free, 22023k buffers Swap:k total, 0k used,k free,k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1379 rootS 0.7 1.3 0:11.03 sshdroot 796 R 0.7 0.5 0:02.72 top 1 root 544 S 0.0 0.3 0:00.90 init 2 rootS 0.0 0.0 0:00.00 ksoftirqd/0 3 root RTS 0.0 0.0 0:00.00 watchdog/0统计信息区
前五行是系统整体的统计信息。之一行是任务队列信息,同 uptime 命令的执行结果。其内容如下:
:06:48当前时间
up 1:22系统运行时间,格式为时:分
user当前登录用户数
load average: 0.06, 0.60, 0.48系统负载,即任务队列的平均长度。
三个数值分别为 1分钟、5分钟、15分钟前到现在的
平均值
。
第二、三行为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行。内容如下:
Tasks: 29 total进程总数
running正在运行的进程数
sleeping睡眠的进程数
stopped停止的进程数
zombie
僵尸进程
数
Cpu(s): 0.3% us用户空间占用CPU百分比
.0% sy内核空间占用CPU百分比
.0% ni用户进程空间内改变过优先级的进程占用CPU百分比
.7% id空闲CPU百分比
.0% wa等待输入输出的CPU时间百分比
.0% hi
.0% si
最后两行为内存信息。内容如下:
Mem:k total
物理内存
总量
k used使用的物理内存总量
k free空闲内存总量
k buffers用作内核缓存的内存量
Swap:k total交换区总量
k used使用的交换区总量
k free空闲交换区总量
k cached缓冲的交换区总量。
内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,
该数值即为这些内容已存在于内存中的交换区的大小。
相应的内存再次被换出时可不必再对交换区写入。
进程信息区
统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。
序号列名含义
aPID进程id
bPPID父进程id
cRUSERReal user name
dUID进程所有者的用户id
eUSER进程所有者的
用户名
fGROUP进程所有者的组名
gTTY启动进程的终端名。不是从终端启动的进程则显示为 ?
hPR优先级
iNInice值。负值表示高优先级,正值表示低优先级
jP最后使用的CPU,仅在多CPU环境下有意义
k%CPU上次更新到现在的CPU时间占用百分比
lTIME进程使用的CPU时间总计,单位秒
mTIME+进程使用的CPU时间总计,单位1/100秒
n%MEM进程使用的物理内存百分比
oVIRT进程使用的
虚拟内存
总量,单位kb。VIRT=SWAP+RES
pSWAP进程使用的虚拟内存中,被换出的大小,单位kb。
qRES进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
rCODE可执行代码占用的物理内存大小,单位kb
sDATA可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
tSHR
共享内存
大小,单位kb
unFLT页面错误次数
vnDRT最后一次写入到现在,被修改过的页面数。
wS进程状态。
D=不可中断的睡眠状态
R=运行
S=睡眠
T=跟踪/停止
Z=僵尸进程
xCOMMAND命令名/命令行
yWCHAN若该进程在睡眠,则显示睡眠中的系统函数名
zFlags任务标志,参考 sched.h
默认情况下仅显示比较重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。可以通过下面的
快捷键
来更改显示内容。
更改显示内容
通过 f 键可以选择显示的内容。按 f 键之后会显示列的列表,按 a-z 即可显示或隐藏对应的列,最后按
回车键
确定。
按 o 键可以改变列的显示顺序。按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z 可以将相应的列向左移动。最后按回车键确定。
按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序。而大写的 R 键可以将当前的排序倒转。
功能说明:将文本文件内容加以排序。
语 法:sort
补充说明:sort可针对文本文件的内容,以行为单位来排序。
参 数:
-b
忽略每行前面开始出的空格字符。
-c
检查文件是否已经按照顺序排序。
-d
排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
-f
排序时,将小写字母视为大写字母。
-i
排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
-m
将几个排序好的文件进行合并。
-M
将前面3个字母依照月份的缩写进行排序。
-n
依照数值的大小排序。
-o
将排序后的结果存入指定的文件。
-r
以相反的顺序来排序。
-t
指定排序时所用的栏位分隔字符。
+-
以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
–help
显示帮助。
–version
显示版本信息
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
下面通过几个例子来讲述Sort的使用。
用Sort命令对text文件中各行排序后输出其结果。请注意,在原文件的第二、三行上的之一个单词完全相同,该命令将从它们的庆做第二个单词vegetables与fruit的首字符处继续进行比较。
$
cat
text
vegetable
soup
fresh
vegetables
fresh
fruit
lowfat
milk
$
Sort
text
fresh
fruit
fresh
vegetables
lowfat
milk
vegetable
soup
用户可以保存排序后的文件内容,或把排序后的文件内容输出至打印机。下例中用户把排序后的文件内容保存到名为result的文件中。
$
Sort
text>result
以第2个字段作为排序关键字对文件example的内容进行排序。
$
Sort
+1-2
example
对于file1和file2文件内容反向排序,结果放在outfile中,利用第2个字段的之一个字符作为排序关键字。
$
Sort
-r
-o
outfile
+1.0
-1.1
example
Sort排序常用于在管道中与其他命令连用,组合完成比较复杂的功能,如利用管道将当前工作目录中的文件送给Sort进行排序,排序关键字是第6个至第8个字段。
$
ls
–
l
|
Sort
+5
–
$
ps
-e
-o
“
comm
pid
time”|Sort
-d
//按照command的首字母的字母顺序排序
Sort命令也可以对标准输入进行操作。例如,如果您想誉森衡把几个文件文本行合并,并对合并后的文本行进行排序,您可以首先用命令cat把多个文件合
并,然后用管道操作把合并后的文本行输入给命令Sort,Sort命令将输出这些合并及排序后的文本行。在下面的例子中,文件veglist与文件
fruitlist的文本行经过合并与排序后被保存到文件clist中。
$
cat
veglist
fruitlist
|
Sort
>
关于linux排序取值更大的的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
成都创新互联科技有限公司,经过多年的不懈努力,公司现已经成为一家专业从事IT产品开发和营销公司。广泛应用于计算机网络、设计、SEO优化、关键词排名等多种行业!
网页标题:Linux命令行中快速排序及取值更大值方法(linux排序取值更大的)
文章来源:http://www.mswzjz.cn/qtweb/news26/276926.html
攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能