1 --第4天--文本处理工具和正则表达式
2
3 各种文本工具来查看,分析,统计文本
4
5 文本查看工具查看:
6 cat
7 -n 显示行号
8 -b 只给非空行编号
9 -E 显示每行的结尾,用$表示
10 -s 压缩多个空白行只显示1行
11 cat file1 > file2 查看文件到标准输出重定向到另外一个文件,实现替换或者追加。
12
13 tac
14 反向输出文件到标准输出,正好与cat相反
15
16 rev 可以把文件内容按照逆序读出来。
17
18 more
19 将文档分页显示
20
21 less
22 和more一样,并且支持搜索,使用/
23 less命令是man命令的分页器
24
25 head:默认只读取前10行内容
26 -c 10 读取前10个字符
27 -n# 读取#行内容
28
29
30 tail:默认读取后10行内容
31 -c
32 -n#
33 -f 可以追踪文件更改,常用于日志文件监控 比如:tail -f /var/log/messages
34
35 getent
36 查看用户和组相关文件,实例:genent passwd, getent shadow...
37
38 vipw
39 相当于:vim /etc/passwd
40
41
42 cut 切割
43 -b 按指定字节数截取 echo "1:2:3:4"|cut -b1-3 --> 1:2
44 -c 按指定字符数截取 echo "1:2:3:4"|cut -c1-3 --> 1:2
45 -d 指定分隔符(delimiter)
46 -f 指定要截取的列,与-d合用echo "1:2:3:4"|cut -d:-f3 --> 3
47
48 paste 合并2个文件中行号相同的行为一行,可以用于将2个文件水平合并
49 paste file1 file2
50 -d 指定分隔符,默认为tab
51 -s 将每个文件内容输出在一行
52
53
54 文本分析工具:
55
56 wc 文本数据统计
57 wc file 每列表示:行数,单词数,字符数,文件名
58 -l 行
59 -c 字节数
60 -w 单词数
61
62 sort 排序
63 -t 指定分隔符
64 -k 指定特定的列,按照这列的内容,进行特定规则的排序,默认按照从小到大,重新调整文档每行的位置,配合一些选项也可以改变
65 -r 反向排序
66 -n 按照数字排序
67 -R 随机排序
68 -u 删除重复的行
69 ...
70
71 uniq 删除前后衔接的相同的行,与sort -u不一样
72 -c 统计重复行的次数,常与SORT一起用 sort file1.txt|uniq -c
73
74 diff file1 file2 比较2个文件内容
75 -u 可以生成补丁文件-->xxx.patch
76 patch -b xxx.patch file2 可以将file2恢复
77
78
79 grep 使用模式过滤文本,处理文本行。支持正则表达式
80 匹配字符串:grep "abc"
81 匹配文件中字符串:cat /abc/test.txt |grep "abc"
82 支持匹配变量:grep "$USER" /etc/passwd
83 支持匹配命令执行结果:grep `hostname` /etc/hostname
84
85 -m # 匹配到的结果只显示前#行
86 -i 忽略大小写
87 -v 显示未匹配的行
88 -n 显示行号
89 -H 把文件名显示出来
90 -c 显示匹配了多少行
91 -o 只显示匹配到的字符
92 -q 静默模式,结果保存在$?变量中,0表示有匹配项
93 -w 匹配整个单词
94
95 -E 等价于egrep
96 -F 等价于fgrep 不支持正则表达式
97 参考:man 7 regex
98
99 grep支持基础正则表达式和扩展正则表达式,其中扩展正则表达式,就是把基础正则表达式的\(转义符),去掉!
100 分为4类:字符匹配,匹配次数,位置锚定,分组
101
102 字符匹配:[0-9],[a-z],[A-Z],[:digit:],[:alpha:],[:alnum:],[:lower:],[:upper:][:blank:],[:space:],[cntrl],[:graph:],[:print:]
103 . 单个任意字符
104 [] 指定范围内的单个字符
105 [^] 指定范围外的单个字符
106
107 次数匹配:
108 * 0次1次或多次
109 + 1次或多次
110 ? 1次或0次
111 {m} m次
112 {,m} 0-m次
113 {m,} m~无数次
114 {m,n} m~n次
115 .* 任意字符任意次
116
117 位置锚定:
118 ^ 行首
119 $ 行尾
120 \< 词首
121 \> 词尾
122 ^$ 空行
123 ^pattern$ 匹配整行
124 \b 同样可以表示词首或词尾
125
126
127 分组:
128 分组即用()将pattern包含,支持后向引用!
129
130
131 以下博客地址为上面正则表达式的一些应用:https://blog.51cto.com/13182370/2360917
Linux学习笔记4:正则表达式
原创
©著作权归作者所有:来自51CTO博客作者abb_ceo的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Linux学习笔记<七>——正则表达式和扩展正则表达式
介绍了常用的(扩展)正则表达式元字符,分为字符匹配类、匹配次数类、位置锚定类、分组和后向引用类等
Linux学习 正则表达式 扩展正则表达