shell脚本常用的工具
- sort
- uniq
- tr
- cut
sort
- sort是一个以行为单位对文件内容排序的工具,也可以根据不同的数据类型来排序,例如数据和字符的排序就不一样。
- 比较原则是从首字符向后,依次按ASCII码进行比较,最后将他们升序输出
语法格式:sort 【选项】 参数
常用选项
选项 | 功能 |
---|---|
-n | 按照数字进行排序,默认以文字形式排序 |
-r | 反向排序 |
-u | 等同于uniq,表示相同的数据仅显示一行 |
-t | 指定字段分隔符,默认使用[Tab]键分隔 |
-k | 指定排序字段 |
-o <输出文件> | 将排序后的结果转存至指定文件 |
-f | 忽略大小写,会将小写字母都转换为大写字母来进行比较 |
-b | 忽略每行前面的空格 |
- sort
- -n:按照数字进行排序,默认是以文字形式排序
- -t:指定分隔符,默认使用[Tab]键或空格分隔
- -k:指定排序区域,哪个区间排序
- -u:等同于 uniq,表示相同的数据仅显示一行,注意:如果行尾有空格去重就不成功
- -r:反向排序,默认是升序,-r就是降序
- 将排序后的结果转存至指定文件
uniq
- uniq:主要用于去除连续的重行,注意是连续的行,所以通常和sort结合使用先排序使之变成连续的行在执行去操作,否则不连续的重行他不能去重。
语法格式:uniq 【选项】 参数
常用选项
选项 | 功能 |
---|---|
-c | 进行计数,并删除文件中重复出现的行 |
-d | 仅显示连续的重复行 |
-u | 仅显示出现一次的行 |
- -c:对连续重复出现的行进行计数;
- -d:仅显示重复出现的行
- -u:仅显示出现一次的行
tr
- tr:常用来对来自标准输入的字符进行替换,压缩和删除
语法格式:tr 【选项】 【参数】
常用选项
选项 | 功能
-------- | -----
-c | 保留 字符集1 的字符,其他的字符(包括换行符 \n)用 字符集2 替换
-d | 删除所有属于字 符集1 的字符
-s | 将重复出现的字符串压缩为一个字符:用字符集2 替换 字符集1
-t | 字符集2 替换 字符集1 ,不加选项同结果
参数:
字符集1:指定要转换或删除的原字符集。当执行转换操作时,必须使用参数"字符集2"制定转化的目标字符集。但执行删除操作时,不需要参数字符2
字符集2:指定要转换成的目标字符集
- tr
-
-c:保留字符集1 的字符,其他的字符(包括换行符 \n)用 字符集2 替换
-
-d:删除所有属于字符集1的字符
- -s:将重复出现的字符串压缩为一个字符:用字符集2 替换 字符集1
- -t:字符集2替换字符集1,和不加选项相同结果
cut
- cut:列截取工具
- cut命令从文件的每一行剪切字节,字符和字段并将这些字节、字符和字段写至标准输出。如果不指定File参数,cut命令将读取标准输入。必须指定-b、-c或-f标志之一
选项 | 功能 |
---|---|
-f | 通过指定哪一个字段进行提取。cut命令使用"Tab"作为默认的字段分隔符 |
-d | "Tab"是默认的分隔符,使用此选项可以更改为其它的分隔符 |
-b | 按字节截取 |
-c | 按字符截取 |
–complement | 此选项用于排除所指定的字段 |
–output-delimiter | 更改输出内容的分隔符 |
- -f:通过指定哪一个字段进行提取。cut命令使用"Tab"作为默认的字段分隔符
- -d:"Tab"是默认的分隔符,使用此选项可以更改为其它的分隔符
-b:按字节截取
-c:按字符截取
–complement | 此选项用于排除所指定的字段
–output-delimiter | 更改输出内容的分隔符