1、文本的查看、分析和统计工具
<1>文本查看工具 cat tac rev more less head tail cut paste
cat
-A:显示所有隐藏的控制符
-n:显示行号
-s:压缩连续的空行至一行
[root@centos6 testdir]# cat -A -n f4 1 a $ 2 ^I$ 3 b$
paste:合并两个文件同行号的列到一行
paste [OPTION]… [FILE]…
-d 分隔符:指定分隔符,默认用TAB
-s : 所有行合成一行显示
[root@centos6 testdir]# paste -d* f1 f2 * CentOS release 6.8(Final)*CentOS release 6.8(Final) Kernel \r on an \m*Kernel \r on an \m \l*\l \n*\n \t*\t [root@centos6 testdir]# paste -s f1 f2 CentOS release 6.8(Final) Kernel \r on an \m \l \n \t CentOS release 6.8(Final) Kernel \r on an \m \l \n \t
tac:纵向反向查看内容
rev:横向反向查看内容
[root@centos6 testdir]# tac f1 abc c b a [root@centos6 testdir]# rev f1 a b c cba [root@centos6 testdir]# cat f1 a b c abc
more:文本查看工具
less:more的升级版,功能更加强大,man命令使用的分页器
翻页
space: 向下翻一页
b:向上翻一页
ctrl+d:向下翻半页
ctrl+u:向上翻半页
enter:向下翻一行
命令
!:可临时执行命令
查找
/ KEYWORD:向上搜索
n:同向搜索
N:反向搜索
? KEYWORD:向下搜索
n:同向搜索
N:反向搜索
head:默认查看前十行
-#:查看文本的前几行
tail:默认查看后十行
-#:查看文本的后十行
注意:这俩者组合可查看特定的一行
监控日志:tail -n 0 -f /var/log/messages &
查看后台程序:jobs
调出后台程序:fg1
cut [OPTION]… [FILE]…
-d 分隔符:指明分隔符
-f:指明截取字段
#: 第#个字段
#,#:离散的多个字段,例如1,3,6
#-#:连续的多个字段, 例如1-6
混合使用:1-3,7
<2>文本统计工具 wc sort uniq
wc [OPTION]… [FILE]…
常用选项:
-l:记录行数
-w:记录单词数
-c:记录字符数
sort [OPTION]… [FILE]…
命令功能:排序
常用选项
-n:按照数字大小排序
-r:反向排序
-t:指定分隔符
-k:指定排序的字段
uniq [OPTION]… [INPUT [OUTPUT]]
命令功能:统计
常用选项
-c:显示相邻的行重复的次数
-d: 仅显示相邻重复过的行
-u: 仅显示相邻不曾重复的行
[root@centos6 testdir]# cat f1 a a c a [root@centos6 testdir]# uniq -d f1 a [root@centos6 testdir]# uniq -u f1 c a
注意:常用sort | uniq -c组合统计重复的行
<3>文本分析工具
diff FILE1 FILE2
[root@centos6 testdir]# cat f1 a b c [root@centos6 testdir]# cat f2 a [root@centos6 testdir]# diff f1 f2 2,3d1 < b < c [root@centos6 testdir]# diff f2 f1 1a2,3 > b > c
2、文本过滤工具—grep和egrep
<1>介绍正则表达式
一种通过匹配模式,对文本进行行过滤的工具,在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。由于正则表达式主要应用对象是文本,因此它在各种文本编辑器场合都有应用,小到著名编辑器EditPlus,大到Microsoft Word、Visual Studio等大型编辑器在各种编程语言中应用广泛,入门较难,但只要正真理解,你就会发现它的强大。grep是应用正则表达式的工具,egrep只是在grep的基础上做了简单的升级,并无实质性差异。
<2>grep用法格式
grep [OPTIONS] PATTERN [FILE…]
常用选项
–color=auto: 对匹配到的文本着色显示;
-v: 显示不能够被pattern匹配到的行;
-i: 忽略字符大小写
-q:静默模式,常用于条件判断
-A #: after, 后#行
[root@centos6 testdir]# grep -A1 ^root /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin
-B #: before, 前#行
-C #:context, 前后各#行
-E:使用ERE
<3>正则表达式和扩展正则表达式匹配模式
注:空白处无意义
分类 |
符号 |
ERE |
BRE |
字符匹配 |
. |
单个字符 |
单个字符 |
字符匹配 |
? |
||
字符匹配 |
* |
其前面的字符任意次 |
其前面的字符任意次 |
字符匹配 |
.* |
任意长度任意字符 |
任意长度任意字符 |
字符匹配 |
[] |
指定范围内任意一个字符 |
指定范围内任意一个字符 |
字符匹配 |
[^] |
指定范围外任意一个字符 |
指定范围外任意一个字符 |
字符匹配 |
[0-9] |
任意一个数字 |
任意一个数字 |
字符匹配 |
[a-z] |
任意一个小写字母 |
任意一个小写字母 |
字符匹配 |
[A-Z] |
任意一个大写字母 |
任意一个大写字母 |
字符匹配 |
[[:digit:]] |
任意一个数字 |
任意一个数字 |
字符匹配 |
[[:lower:]] |
任意一个小写字母 |
任意一个小写字母 |
字符匹配 |
[[:upper:]] |
任意一个大写字母 |
任意一个大写字母 |
字符匹配 |
[[:alpha:]] |
任意一个字母 |
任意一个字母 |
字符匹配 |
[[:alnum:]] |
任意一个字母或数字 |
任意一个字母或数字 |
字符匹配 |
[[:space:]] |
任意一个空格符 |
任意一个空格符 |
字符匹配 |
[[:punct:]] |
任意一个标点符号 |
任意一个标点符号 |
位置锚定 |
^ |
锚定行首 |
锚定行首 |
位置锚定 |
$ |
锚定行尾 |
锚定行尾 |
位置锚定 |
\< |
锚定词首 |
锚定词首 |
位置锚定 |
\> |
锚定词尾 |
锚定词尾 |
次数匹配 |
\?;? |
前面的字符0次或1次 |
前面的字符0次或1次 |
次数匹配 |
\+;+ |
前面的字符至少1次 |
前面的字符至少1次 |
次数匹配 |
m次,格式\{m\} |
m次,格式{m} |
|
次数匹配 |
至少m次,格式\{m,\} |
至少m次,格式{m} |
|
次数匹配 |
至多n次,格式\{0,n\} |
至多n次,格式{0,n} |
|
次数匹配 |
m次到n次,格式\{m,n\} |
m次到n次,格式{m,n} |
|
分组引用 |
\1,\2分组,格式\(\) |
\1,\2分组,格式() |
原创文章,作者:mfwing,如若转载,请注明出处:http://www.178linux.com/30574