每天一个linux命令(1)sortsort 是将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按照ASCII码值进行比较 , 默认将他们按照升序输出
降序
在输出中去重
将排序结果输出到原文件
sort的默认输出是输出到标准输出,如果想把结果输出到文件,需要 sort filenewfile,但是如果想把结果输出到原文件这样就不行了,这时就需要 使用sort -o
以数值来排序
sort 默认是按照字符串排序的 , 这样就会出现10比3小的情况,sort -n 就可以告诉sort 以整数排序
-t 后面跟 分隔符
-k 后面跟数字,表示用第几列排序
如 sort -t : -k 2 表示把每行 以:号分割,按照第二列排序
banana:30:5.5
orange:20:3.4
apple:10:2.5
我们可以看到,当baidu 和soho都是100的时候,baidu排在前面 , 当当前域按照默认规矩,是从第一个域开始进行升序排序,因此baidu排在了sohu前面 。
sort 支持 -k 2 -k3这种模式 , 如果你需要,你可以继续这么写下去
你仔细看看,在-k 3后面偷偷加上了一个小写字母r,r和-r的作用是一样 , 你也可以把前面的-n去掉 在r后面加上n,如下
其实-k 选项 功能很强大,语法[ FStart [ .CStart ] ] [ Modifier ] [ , [ FEnd [ .CEnd ] ][ Modifier ] ]
从逗号前后 分为两大部分,即-k 2,2,是严格使用第一个域排序 , 如果只设置-k 2 其实是按照从第一个域到行尾 。逗号分开的每部分又有一个点表示子域 , 即-k 1.2表示 按照第一个域的第二个字符排序 , Modifiers就是我们用到的n和r如 -k 1.2nr具体我们看下面的例子 。
我们使用了-k 1.2,这就表示对第一个域的第二个字符开始到本域的最后一个字符为止的字符串进行排序 。你会发现baidu因为第二个字母是a而名列榜首 。sohu和 google第二个字符都是o,但sohu的h在google的o前面 , 所以两者分别排在第二和第三 。这和之前说到的按照默认的排序规则 是不同的,当第一个域的第二个字符相同时,他不会去按照第一个字符排序,而是按照后面的字符排序,这是因为-k 1.2是对第一个域的第二个字符开始到本域的最后一个字符为止的字符串进行排序 。而之前的夸域其实是一种假象 。
-u只识别用-k设定的域,发现相同,就将后续相同的行都删除
但是这时候,却一行也没有删除 。原来-u是会权衡所有-k选项,将都相同的才会删除,只要其中有一级不同都不会轻易删除的
可以用到b、d、f、i、n 或 r 。
其中n和r你肯定已经很熟悉了 。
b表示忽略本域的签到空白符号 。
d表示对本域按照字典顺序排序(即,只考虑空白和字母) 。
f表示对本域忽略大小写进行排序 。
i表示忽略“不可打印字符”,只针对可打印字符进行排序 。(有些ASCII就是不可打印字符,比如\a是报警,\b是退格,\n是换行,\r是回车等等)
linux常用命令有哪些linux 常用命令有:
pwd 命令
使用 pwd 命令找出您所在的当前工作目录(文件夹)的路径 。该命令将返回一个绝对(完整)路径 , 该路径基本上是所有以 / 开头的目录的路径 。绝对路径的一个示例是 /home/username 。
cd 命令
要浏览 Linux 文件和目录 , 请使用 cd 命令 。根据您所在的当前工作目录 , 它需要目录的完整路径或名称 。假设您位于 /home/username / Documents 中,并且想要转到 Documents 的子目录 Photos 。为此,只需键入以下命令:cd Photos 。另一种情况是,如果您想切换到一个全新的目录,例如 /home/username / Movies 。在这种情况下,您必须输入 cd,然后输入目录的绝对路径:cd /home/username / Movies 。有一些快捷方式可帮助您快速导航:cd ..(带有两个点)将一个目录向上移动 cd 直接转到主文件夹 cd-(带连字符)移动到上一个目录附带说明一下,Linux 的 shell 是区分大小写的 。因此,您必须准确输入名称的目录 。
推荐阅读
- 游戏网络同步,游戏网络同步怎么设置
- 关于sqlserver同时允许的最大连接数的信息
- 微信公众号运营目标和方向,微信公众号运营规划方案
- 新手直播要准备什么工具,初学直播需要什么设备
- 用php数据库 php怎么写数据库
- js正则防止sql注入,前端防止sql注入正则
- 早教机小程序怎么用,早教机怎么安装app
- 手机直播排名第一软件,手机直播软件推荐
- linux简化命令教程 最简linux