shell脚本——sort uniq, tr 工具

Sort工具

以行为单位,对文件内容进行排序,也可以根据不同的数据类型来排序

常用选项

sort 命令的语法为   “ sort   [选项]   参数 ”,  其中常用的选项包括以下几种:

-f:忽略大小写;

-b:忽略每行前面的空格;

-M:按照月份进行排序;

-n:按照数字进行排序;

-r:反向排序;

-u:等同于 uniq,表示相同的数据仅显示一行;

-t:指定分隔符,默认使用[Tab]键分隔;

-o <输出文件>:将排序后的结果转存至指定文件;

-k:指定排序区域。

用法举列

#将/etc/passwd 文件中的账号进行排序
[root@localhost ~]# sort /etc/passwd 
#将/etc/passwd 文件按照第三列大小 进行反向排序
[root@localhost ~]# sort -t ':' -rk 3 /etc/passwd 
#将/etc/passwd 文件按照第三列大小进行排序,并将输出内容保存至 user.txt 文件中
[root@localhost ~]# sort -t ':' -k 3 /etc/passwd -o user.txt 
[root@localhost ~]# cat user.txt 

Uniq 工具

Uniq 工具在 Linux 系统中通常与 sort 命令结合使用,用于报告或者忽略文件中的重复行

常用选项

-c:进行计数;
-d:仅显示重复行;
-u:仅显示出现一次的行。

用法举列

[root@localhost ~]# vi 1.txt 
11
22
33
33
33
44
44
55
55
55
#删除 testfile 文件中的重复行
[root@localhost ~]# uniq 1.txt 
11
22
33
44
55
#删除 testfile 文件中的重复行,并在行首显示该行重复出现的次数
[root@localhost ~]# uniq -c 1.txt 
      1 11
      1 22
      3 33
      2 44
      3 55
#显示重复的行
[root@localhost ~]# uniq -d 1.txt 
33
44
55
#仅显示“不连续”重复的行
[root@localhost ~]# uniq -u 1.txt  
11
22

tr 工具

tr 命令常用来对来自标准输入的字符进行替换、压缩和删除。可以将一组字符替换之后变成另一组字符,经常用来编写优美的单行命令,作用很强大。

常用选项

 语法格式
 tr  [选项]  参数
 
 -c:保留字符集1的字符,其他的字符用(包括换行符\n)字集符2替换
 
 -d:删除所有属于字符集1的字符
 
 -s:将重复出现的字符串压缩为一个字符串;用字符集2替换字符集1
 
 -t:字符集2 替换 字符集1 ,不加选项同结果
 


 参数:
 字符集1:指定要转换或删除的原字符集,当执行转换操作时,必须使用参数 “字符集2” 指定转换的目标字符集
 但执行删除操作时,不需要参数 “ 字符集2 ”
 字符集2:指定要转换成的目标字符集

用法举列

#把a换成b
[root@localhost ~]# echo "abc" | tr "a" "b"
bbc
#保留ab其他全部换成o 输出完结果换行
[root@localhost ~]# echo abcdef | tr -c "ab\n" "o"
aboooo
#删除所有llo
[root@localhost ~]# echo "hello word" | tr -d "llo"
he wrd
#删除重复的字符
[root@localhost ~]# echo "thisss is a diiiiiiiisk" | tr -s "si"
this is a disk
#删除多余的换行
[root@localhost ~]# echo -e "aa\n\n\n\nbb" |tr -s '\n'
aa
bb

猜你喜欢

转载自blog.csdn.net/weixin_48190891/article/details/108308131