1. 文本處理工具
1.1 文件查看命令cat tac
cat命令:連接文件并在標準輸出上面顯示出來
圖 1-1 cat幫助文檔
cat [option]…[file]…
-E 顯示行結束符
-n 對顯示的每一行進行編號
-A 顯示所有的控制符
-b 非空行號
-s 壓縮連續的空行成一行
圖 1-2 cat命令使用
tac 也是文件查看命令,它與cat相反,cat是順序查看,從文件頭部開始逐行顯示內容,tac正好相反,它是從文件尾部開始逐行向上顯示,所以當用戶使用該命令查看文件時,最先顯示的是文件尾部的內容,文件頭部內容是最后顯示的。
2.1 分頁查看文件more less
more 分頁查看文件
圖 1-3 more幫助文檔
more [option]…file…
-d 顯示翻頁及退出提示
less 一頁一頁地查看文件或stdin輸出
圖 1-4 less幫助文檔
less [option]…file…
查看時可以使用 /文本 搜索 文本 n/N 跳到上一個或下一個匹配
head 顯示文本前n行內容
head [option]…file…
-c n 指定獲取前n個字節
-n n 指定獲取前n行
-# 指定行數
圖 1-6 head命令使用
tail 從文件尾部開始查看
tail [option]…file…
-c n 指定獲取后n個字節
-n n 指定獲取后n行
-# 指定行數
-f 跟蹤顯示文件新追加的內容
圖 1-7 head命令使用
3.1 按列抽取文本cut及合并文件paste
cut [option]…file…
圖 1-8 cut幫助文檔
-d delimiter 指明分隔符,默認tab
-f fields 字段
-c 按字符切割
–output-delimiter=string 指定輸出分隔符
圖 1-9 cut命令使用
paste 合并兩個文件同行號的列到一行
paste [option]…file…
-d 指定分隔符
-s 所有的行合成一行
圖 1-10 paste命令使用
4.1 文本數據統計及排序
4.1.1 wc命令可以統計計數單詞總數,行總數,字節總數和字符總數
圖 1-11 wc幫助手冊
wc
-l 只對行進行計數
-w 只對單詞總數計數
-c 只對字節總數計數
-m 只對字符總數計數
圖 1-12 wc命令使用
4.1.2 文本排序sort
sort 把整理過的文本顯示在STDOUT,不改變原始文件
圖 1-13 sort幫助文檔
-r 執行反向整理
-n 執行按數字大小整理
-f 選項忽略字符串中的字符大小寫
-u 選項刪除輸出中的重復行
-t c 選項使用c作為字段分隔符
-k 選項按照使用c字符分割的X列來整理能夠使用多次
圖 1-14 sort命令使用
4.1.3 uniq命令
uniq 從輸入中刪除重復的前后相接的行
圖 1-15 uniq幫助文檔
uniq [option]…file…
-c 顯示每行重復的次數
-d 僅顯示重復的行
-u 僅顯示不存重復的行
常與sort命令一起配合使用
sort file | uniq -c
圖 1-16 uniq命令使用
2.文本處理三劍客之grep
grep 文本過濾工具
Global search REgular expression and Print out the line
作用 文本搜索工具,根據用戶指定的"模式"對目標文本逐行進行匹配,打印匹配到的行。
模式 有正則表達式字符及文本字符編寫成的過濾條件
圖 2-1 grep幫助文檔
grep [option] pattern [file]…
–color=auto 對匹配到的文本著色顯示
-v 顯示不能夠被pattern匹配到的行
-i 忽略大小寫
-n 顯示匹配的行號
-c 統計匹配的行數
-o 僅顯示匹配到的字符串
-q 靜默模式
-A n after 后n行
-B n before 前n行
-C n context 前n行后n行
-e 實現多個選項之間的邏輯or關系
-w 正行匹配整個單詞
-E 使用ERE
圖 2-2 grep命令使用
egrep grep的擴充版本,優化了一些grep的語法,擴充了grep支持的功能
egrep=grep -E
egrep [option] pattern [file…]
3.正則表達式及擴展正則表達式
REGEXP 有一類特殊字符及文本字符所編寫的模式,其中有些字符(元字符)不表示字面意義,而是控制或通配的功能。
正則表達式分為:
基本正則表達式:BRE
擴展正則表達式:ERE
圖 3-1 正則表達式幫助文檔
圖 3-2 正則表達式
正則表達式:
位置錨定: 定位出現的位置
^ 行首錨定,用于模式的最左側
$ 行尾錨定,用于模式的最右側
^PATTERN$ 用于模式匹配整行
^$ 空行 ^[[:space:]]*$ 空白行
\<或\b 詞首錨定,用于單詞模式的最左側
\>或\b 詞尾錨定,用于單詞模式的最右側
\<PATTERN\> 匹配整個單詞
分組:
\(\)將一個或多個字符捆綁在一起,當作一個整體進行處理,如\(root\)\+
分組括號中的模式匹配到的內容會被正則表達式引擎記錄與內部變量中,這些變量的命名方式為:\1,\2,\3…
\1表示從左側起,第一個左括號以及與之匹配右括號之間的模式所匹配到的字符,引用前面分組括號中的模式所匹配到的字符而非模式本身。
圖 3-3 正則表達式位置錨定
擴展正則表達式
次數匹配:
* 匹配前面字符任意次
? 0次或1次
+ 1次或多次
{m} 匹配m次
{m,n} 至少m次,至多n次
位置錨定
^ 行首
$ 行尾
\<,\b 詞首
\>,\b 詞尾
分組
()
向后引用 \1,\2…
或者
a|b
C|cat C或cat
(C|c)at Cat或cat
圖 3-3 egrep命令使用
原創文章,作者:Stupid_L,如若轉載,請注明出處:http://www.www58058.com/29738