Shell-命令排序sort及替换、截取(cut、tr)教程
文章目录
1. sort排序
sort命令:以行为单位对文件内容进行排序,也可以根据不同的数据类型来排序
格式:
sort [选项] 参数
cat file|sort 选项
常用选项:
-f:忽略大小写,会将小写字母都转换为大写字母来进行比较
-b:忽略每行前面的空格
-n:按照数字进行排序
-r:反向排序
-u:等同于uniq,表示相同的数据仅显示一行
-t:指定字段分隔符,默认使用[Tab]键分隔
-k:指定排序字段
-o 输出文件:将排序后的结果转存至指定文件
使用sort命令结合替换命令tr可直接对数组中的数据进行排序,相较于之前使用脚本编写更快捷
arr=(20 50 40 30 10)
echo ${arr[@]} |tr " " "\n"|sort -n
#!/bin/bash
read -p "请输入一个数组" arr
echo ${arr[@]} |tr " " "\n" |sort -n > ~/file
a=0
for i in $(cat ~/file)
do
arr[$a]=$i
let a++
done
echo ${arr[@]}
如果需要,在最后在执行一次替换,变成之前以空格分割的格式;
- -
uniq命令:用于报告或忽略文件中的连续的重复行,常与sort结合使用
格式:uniq [选项] 参数
常用选项:
-c:进行计数,并删除文件中重复出现的行
-d:仅显示连续的重复行
-u:仅显示出现一次的行
2. tr命令
tr命令–用来对来自标准输人的字符进行替换,压缩和删除
格式:tr [选项] [参数]
常用选项:
-c:保留字符集1的字符,其他的字符(包括换行符\n)用字符集2替换
-d:删除所有属于字符集1的字符
-s:将重复出现的字符串压缩为一个字符串;用字符集2替换字符集1
-t:字符集2替换字符集1,不加选项同结果
参数:
字符集1:指定要转换或删除的原字符集。当执行转换操作时,必须使用参数“字符集2”指定转换的目标字符集。但执行删除操作时不需要参“字符集2”
字符集2:要参数"字符集2”
3. cut命令
cut命令:显示行中的指定部分,删除文件中指定片段
格式:cut [选项] 参数
cat file |cut 选项
常用选项:
-f:通过指定哪一个字段进行提取。cut命令使用"TAB"作为默认的字段分隔符
-d:"TAB”是默认的分隔符,使用此选项可以更改为其他的分隔符
--cpmplement:此选项用于排除所指定的字段
--output-delimiter:更改输出内容的分隔符