文本处理工具简单介绍

1、文本文件查看

cat 可以查看文本内容

nl 可以在查看文本同时显示文本行号

tac 逆向显示文本内容

rev 将同一行内容逆向显示

非文本文件查看可以用:  hexdump -C  或者  cmp(可查看二进制文件的不同)

分页查看more,less

more 
-d: 显示翻页及退出提示
less
/文本 搜索文本
n/N  跳到下一页或上一页

显示文本前面或后面的行内容

head 显示文件或标准输入的前面行

-c # 指定获取前#字节
-n # 获取前几行

tail 与 head 相反

-c # 获取后#字节
-n # 获取后几行
-f 跟踪显示文件在执行查看后新追加内容,常用语日志文件

抽取文本cut

-d @ 指明分隔符
-f # 按#字段分隔
-c 按字符分隔

举例应用:取分区利用率
[16:18:47 @rocky2[ ~]#df
Filesystem     1K-blocks    Used Available Use% Mounted on
devtmpfs          977516       0    977516   0% /dev
tmpfs             996008       0    996008   0% /dev/shm
tmpfs             996008    8884    987124   1% /run
tmpfs             996008       0    996008   0% /sys/fs/cgroup
/dev/sda2      104806400 2866808 101939592   3% /
/dev/sda1        2086912  169328   1917584   9% /boot
/dev/sda5       52403200  428776  51974424   1% /data
tmpfs             199200       0    199200   0% /run/user/0
[16:18:54 @rocky2[ ~]#df|tail -n8 |tr -s ' '|cut -d ' ' -f5|sort -r|head -n1
9%
合并文件

paste
-d # 指定分隔符
-s 所有行合成一行

2、分析文本

文本统计数据 wc

-l 只统计行数
-w 只统计单词总数
-c 只统计字节总数
-L 显示文件中最长行的长度

文本排序 sort

-r 倒序
-R 随机排序
-n 执行按数字大小整理
-h 人类可读排序,2k
-t c 选择c用于字段界定符
-k # 选择使用c字符分隔的#列来整理能够使用多次

去重uniq

-c: 显示每行重复出现的次数
-d; 仅显示重复的行
-u: 仅显示不曾重复的行 常和 sort 使用

举例:统计当前连接本机的每个远程主机IP的连接数,并按从大到小排序
[@rocky2[ ~]#ss -nt
State         Recv-Q         Send-Q          Local Address:Port           Peer Address:Port       Process         
ESTAB         0              36              10.0.0.170:22                10.0.0.1:52419         
[@rocky2[ ~]#ss -nt|tail -n+2 |tr -s ' ' : |cut -d: -f6|sort|uniq -c|sort -nr|head -n2
      1 10.0.0.1

3、文本处理三剑客

grep 文本搜索工具

-v  取反
-i  忽略大小写
-n  显示匹配的行号
-c  统计匹配的行数
-q  不输出任何信息,静默模式
-e  相当于or,多个选项使用
-E  相当于egrep
-r  递归目录,但不处理软链接
-R  递归目录,处理软链接
举例:取分区利用率
df | grep '^/dev/sd'|grep -oE '\<[0-9]{,3}%'|tr -d '%'|sort -rn|head -n1

sed

常用选项
-n  取消自动打印(默认带有自动打印)
-e  多点编辑,相当于or
-r  使用扩展正则表达式
-i.bak  备份文件并在原文编辑

!注意    -ir 不支持该写法,  -ni 会清空文件
定位格式
1.不给地址:对全文进行处理
2.单地址:
	#:指定的行,$:最后一行
	/xxx/:被此处模式能够匹配到的每一行
3.范围:
	#,#   从第几行到第几行
	#,+#  从第几行到+几行
查找替换
s/xxx/xxx/修饰符  查找替换使用分隔符,可换成#@
g  行内全局替换
p  显示替换成功的行
i  忽略大小写

sed可结合后向引用和正则表达式来灵活使用

举例:取ip地址
[@rocky2[ ~]#ifconfig |sed -nr "2s/[^0-9]+([0-9.]+).*/\1/p"
10.0.0.170
取消自动打印,使用扩展正则表达式,p打印所匹配的字符
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值