tr,cut,sort,uniq,seq命令的使用

1.tr

tr命令是一个文本处理工具,跟正则表达式,字符串。有替换,压缩,删除的功能。

-s压缩

-d删除

命令1:tr a b。将出现的a替换成b。

输入---aaa---bdd---

输出---bbb---bdd---

命令:tr -d [字符1字符2...字符n]

遇到指定的字符就删除,例:

-s压缩,遇到连续的指定的字符就压缩成1个字符,例如:tr -s 1 输入1111就输出1,必须是连续的1才会压缩成一个1,如过是1092109不会压缩。

tr还可以将小写字母替换成大写字母:cat /etc/issur | tr '[a-z]' '[A-Z]'

2.cut

cut是切列操作。

-d,指定分割符,指明空格就是-d" "

-f1,取第几列,取第1列。-f1,3取第1和3列。-f2-4取第2到4列

-c按照字符取列

例题:取/etc/passwd文件中用户的用户和属主一列

可以看到用户在第1列,属主在第5列。命令:cut -d: -f1,5

-d选项不能将连续的字符当做分割符,假设有三个空格,只能把第一个空格当做分割符。此时把多个空格利用tr压缩。

例如:我们要磁盘的使用率

先过滤出sda1的行,再压缩空格,再取第5列

df | grep sda1 | tr -s " " | cut -d" " -f5

如果进一步优化,去掉百分号,可以再加一个管道,把%删除掉。

命令:df | grep sda1 | tr -s " " | cut -d" " -f5 | tr -d %

-c是取列:一个字符就是一列,df | grep /dev/sda1 | cut -c 54取第54列

3.sort

sort排序:

-n,按照真实的数字排序,默认从小到大

-r反向排序。

比如/etc/passwd文件,按照第三列UID排序。先取第三列,在排序。

cat /etc/passwd | cut -d: -f3 | sort -k1

这样的排序是先取第一个字符,0,1,2,3...第二个字符也按照0,1,2,3...。

要使按照数字排序用-n

cat /etc/passwd | cut -d: -f3 | sort -n就可以了。

由大到小排序用户UID:cat /etc/passwd | cut -d: -f3 | sort -nr,倒序排列

4.uniq

-u 只显示不重复的行。

-c显示重复的行出现的行数的个数

去重,只能将连续的重去掉。对连续的行去重。比如:

去重前:

        111111

        111111

        22222

        111111

        333333

去重后:

        111111

        22222

        111111

        333333

cat a | uniq -c一个行出现的次数

cat a | uniq -u统计出不重复的行

总结:通常这四个命令搭配使用。当前目录下有一个文件access_log,要求找出地址出现次数最多的十个

思路:

cat access_log查看该文件。

取第一列IP地址。

排序(目的是让相同的IP地址在连续的行)。

把相同的行去重并统计出现的次数。

排序(倒序,按照从大到小对次数排列,默认就是第一行)。

取前十行

命令:cat access_log | cut -d" " -f1 | sort -n | uniq -c | sort -nr | head -10

5.seq

打印输出,默认是换行

-s指定分割符,

seq -s + 10

例如求前10的和

bc是求和

seq -s + 10 |  bc

-end-

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值