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.www58058.com/30574