首页 > 其他 > 详细

文本处理工具和正则表达式

时间:2020-12-10 21:52:56      阅读:33      评论:0      收藏:0      [点我收藏+]
文本常见处理工具
1.cat
cat可以查看文本内容
-E:显示行结束符$
-A:显示所有控制符
-n:对显示出的每一行进行编号
-b:非空行编号
 
2.nl
显示行号,相当于cat-b
 
3.tac
逆向显示文本内容
 
[10:44:34 root@aiyoubucuo ~]$cat ybw
123456
yang
[10:44:44 root@aiyoubucuo ~]$tac ybw
yang
123456

 

4.rev
将同一行的内容逆向显示
[10:44:34 root@aiyoubucuo ~]$cat ybw 123456 yang [10:45:24 root@aiyoubucuo ~]$rev ybw 654321 gnay

 

 
5.hexdump
查看文件十六进制
 
[10:54:19 root@aiyoubucuo ~]$hexdump -C /etc/issue
00000000  5c 64 20 5c 6d 20 5c 6e  20 5c 73 20 0a           |\d \m \n \s .|
0000000d

 

 
6.head
可以显示文件或标准输入的前面行
-c #  指定获取前#字节
-n # 指定获取前#行,#如果为负数,表示从文件头取到倒数第#前
# 同上
[11:12:52 root@aiyoubucuo ~]$cat /dev/urandom |tr -dc [:alnum:]|head -c 12
1epM2tyuKq4F

 

 
7.tail
tail和head相反,查看文件或标准输入的倒数行
-c # 指定获取后#字节
-n # 指定获取 #行,如果#是负数,表示从第#行开始到文件结束
-# 同上
-f 跟踪文件名当文件删除再新建同名文件,将可以继续跟踪文件
[11:21:57 root@aiyoubucuo ~]$cat ybw|tail -n +3
3
4
5
6

 

技术分享图片
8.cut
cut命令可以提取文本文件
-d指明分隔符,-f # :第#个字段,;列入:3
[11:44:21 root@aiyoubucuo ~]$cat /etc/passwd|cut -d: -f1
root
bin
daemon
adm
lp
sync
shutdow
以冒号为分隔符,取第一列字段

 

 
9.paste
合并多个文件同行号的列到一行
-d # 分隔符:指定分隔符
-s 所有行合并成一行
[11:49:35 root@aiyoubucuo ~]$paste ybw yang 
1 a
2 b
3 c
4 d
5 e
6 f
[11:49:47 root@aiyoubucuo ~]$paste -d: ybw yang 
1:a
2:b
3:c
4:d
5:e
6:f
[11:50:23 root@aiyoubucuo ~]$paste -s ybw yang 
1 2 3 4 5 6
a b c d e f 

 

 
10分析文本工具
wc
收集文本统计数据
-l 只技术行数
-w 只计数单词总数
-c 只计数字节总数
-m 只计数字符总数
-L 显示文件中最长行的长度
[11:51:06 root@aiyoubucuo ~]$cat /etc/passwd|wc -l
50
文件行数50行

 

 
11.sort
文本排序
-r 执行反方向由上至下整理
-R 随机排序
-n 执行按数字大小整理
-h 人类可读排序,如2k1G
-u 合并重复项,即去重
[14:22:03 root@aiyoubucuo ~]$df |tr -s   %|cut -d% -f 5|sort -nr|head -n 3
31
6
2
看出磁盘最高使用率

 

 
12.uniq
命令从输入中删除前后相接的重复的行
-c 显示每行重复出现的次数
-d 仅显示重复过的行
-u 进现实不曾重复的行
[14:44:20 root@aiyoubucuo ~]$cat yang ybw|sort|uniq -c
      2 1
      2 10
      2 2
      2 3
      2 4
      2 5
      2 6
      2 7
      2 8
      2 9
sort配合uniq使用

 

 
13.diff
比较文件之间的区别
-u 选项来输出"统一的(unified)"diff格式文件,最适合用于补丁文件
[14:54:40 root@aiyoubucuo ~]$diff -u ybw yang
--- ybw 2020-12-10 14:54:18.657174910 +0800
+++ yang 2020-12-10 14:53:19.613027594 +0800
@@ -1,5 +1,5 @@
nihao
-wang
+ybw
lili
-zhang
+xiaoming

 



14.vimdiff
相当于vim -d
技术分享图片
 
15.扩展正则表达式
egrep或grep -E
字符匹配元字符
. 任意单个字符
[yang] 指定范围的字符
[^yang] 不在指定范围的字符
[:alnum:] 字母和数字
[:alpha:] 代表任何英文大小写字符 A-Z,a-z
[:lower:] 小写字母
[:upper:] 大写字母
[:blank:] 空白字符
[:space:] 水平和垂直的空白字符(比[:blank:]包含范围广)
[:cntrl:] 不可打印的控制字符 (退格,删除,警铃..)
[:digit:] 十进制数字
[:xdigit:] 十六进制数字
[:graph:] 可打印的非空白字符
[:print:] 可打印字符
[:punct:] 标点符号
 
此时匹配
* 匹配前面字符任意次
? 0或1次
+ 1次或多次
{n} 匹配n次
{m,n} 至少m,至多n次
 
位置牟定
^ 行首
$ 行尾
\<语首
\>语尾
 
16.文本处理三剑客之grep
-m # 匹配#次后停止
-v 取反
-i 忽略大小写
-n 显示匹配的行号
-c 统计匹配的行数
-o 仅显示匹配到的字符串
-w 匹配整个单词
-E 使用扩展正则表达式,egrep
grep例子
[16:42:27 root@aiyoubucuo ~]$ifconfig | egrep -o (([0-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) 
10.0.0.8
255.255.255.0
10.0.0.255
127.0.0.1
255.0.0.0
192.168.122.1
255.255.255.0
192.168.122.255 

 

文本处理工具和正则表达式

原文:https://www.cnblogs.com/aiyoubucuo/p/14116270.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!