shell之常用工具(cut、sort、uniq、tr)

shell之常用工具(cut、sort、uniq、tr)

1列截取工具-cut

1.1cut概述

cut命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。

如果不指定file 参数,cut命令将读取标准输入。必须指定 -b(字节) 、-c(字符) 或 -f(第几列) 标志之一。

字符和字节的区别

  • 字节(byte) : 是计量单位,表示数据量多少,是计算机信息技术用于计量存储容量的一种计量单位,通常情况下1字节等于8位
  • 字符(character) :计算机中使用的字母、数字、字和符号
  • 一般在英文状态下,一个字母或字符占用一个字节, 一个汉字占用两个字节 。

1.2常用选项

选项功能
-b按字节截取
-c按字符截取,常用于中文
-d指定以什么为分割符截取,默认为制表符
-f通常和-d一起使用(表示截取第几列)

1.3案例参考

1.截取/etc/passwd 文件的中root用户的第7列(-d -f)

image-20220831173242476

2.按字节截取

image-20220831173438617

2排序工具-sort

2.1sort概述

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

例如:数据和字符的排序就不一样

2.2常用选项

选项功能
-t指定分隔符,默认使用[Tab]键或空格分隔
-k指定排序区域,哪个区间排序
-n按照数字进行排序,默认是以字母形式排序
-u等同于uniq,表示相同的数据仅显示一行,注意:如果行尾有空格就去重就不成功
-r反向排序,默认升序,
-o将排序的结果转存至指定文件

2.3案例

默认以字符排序(a b c d),如果第一个字母相同,比较第二个,以此类推

image-20220831182115912

去重 (sort -u)

去掉重复的内容并按顺序进行排序

image-20220831182431669

image-20220831182543688

指定分隔符(-t),指定排序的列(-k),升序排列

以第3列数字进行排序

image-20220831182757664

指定分隔符,指定排序的列,降序排列(-r)

image-20220831183258957

3 去重工具-uniq

3.1uniq概述

主要用于去除连续的重复行

注意: 是连续的行。所以通常和sort结合使用,先排序使之变成连续的行, 再执行去重操作,否则不连续的重复行它不能去重。

3.2uniq的常用选项

选项功能
-c统计重复的行(在它前面标上重复的次数)
-d仅显示重复的行
-u仅显示出现一次的行(不重复的行)

3.3案例演示

案例1:统计连续重复的行(-c)

image-20220831184829632

案例2:显示连续重复的行(-d)

image-20220831185109502

案例3:查看当前登录用户,去掉重复的行

image-20220831185253651

4修改工具-tr

作用 转换或删除文件中的字符

4.1tr概述

  • 可以用一个字符来替换另一个字符,
  • 或者可以完全除去一些字符
  • 还可以用来去掉重复的字符
  • 从标准输入中替换,缩减和注释或删除字符,并将结果写到标准输出

4.2tr的常用选项

从标准输入中替换、缩减和/或删除字符,并将结果写到标准输出。

选项功能
-d删除字符
-s删除所有重复出现的字符,只保留一个(如果是空行,全部去掉)

4.3案例分析

image-20220831190055236

image-20220831190317731

5总结

cut :表示截取列

可以按照字符(-c)按照字节(-b)或者根据分割符(-d)来选取要截取的列(-f)。

sort:表示排序

默认以字母排序,数字排序需要加选项(-n),反向排序需要加选项(-r)。
还可以选择按照哪一列进行排序,需要先定义分割符(-t),然后根据分割符去选取对应的列(-k),最后进行排序。
可以将排序后的内容输入到其它文件,使用选项(-o)可以指定需要注入的文件名。
还可以将进行去重(-u),可以是不连续的行,进行去重。

uniq:表示去重

主要注意的是它必须是连续的行,不然无法去重
可以根据选项,选择显示不重复的行(-u)
还可以选择显示重复的行(-d)
还可以统计连续重复的数量(-c)

tr:表示修改字符

可以修改对应的字符,按照字符对应一一修改,如果有重复的字符,它会按照最后一个字符对应的修改字符进行替换,如果对应的字符不够时,它会将修改的最后一个字符进替换。
,不然无法去重
可以根据选项,选择显示不重复的行(-u)
还可以选择显示重复的行(-d)
还可以统计连续重复的数量(-c)

tr:表示修改字符

可以修改对应的字符,按照字符对应一一修改,如果有重复的字符,它会按照最后一个字符对应的修改字符进行替换,如果对应的字符不够时,它会将修改的最后一个字符进替换。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值