特殊權限的說明及用法直接並到上一節課的筆記的末尾
文本處理工具
1.cut:將數據以某分割符為界切成幾段,並提取其中一段
-d: d後面直接跟分隔符
-f: f後面跟想要提取的段數,多段用,隔開
2.more/less:翻頁顯示
COMMAND |more/less -d :d是一些簡單的幫助提示
3.head:顯示頭幾行
-#: 顯示前邊#行
4.tail:顯示末尾幾行
-#:顯示末尾#行
-f:監控末尾添加,一般是配合&後台使用
-n +k: 從第k行開始顯示
5.paste:合並命令
-d:分隔符,兩個文件合並在一起區分兩個數據的分隔符
-s:一個數據一行
6.uniq:計數的命令
-c:統計出現的次數
-u:顯示沒有重復的行
-d:顯示重復的行
7.diff:比較兩文件的不同
-u:將比較的結構以特殊格式輸出,重定向到文件後可以做補丁使用
8.patch:
-i:將file1以diff輸出的格式變成file2
-r:將file2以diff輸出的格式變成file1
-b:在做ir操作前備份保存一份原件
正則表達式和linux文本處理三劍客
文本處理三劍客: grep: 過濾文本
sed: 編輯文本
awk: 文本報告生成器
grep:過濾文本工具
grep:支持正則表達式
egrep:支持擴展表達式
fgrep:不支持正則表達式
三個之間可以通過選項轉化 :grep -E =egrep
grep -F =fgrep
grep 【options】 pattern file
-i:區分大小寫
-o:不顯示行,只顯示匹配到的數據
-v:顯示匹配到的數據所在的行以外的內容
-q:靜默模式,無論是否匹配到都不顯示
-E:支持擴展正則表達式
-A #:after,匹配到的行的下#行也一並顯示出來
-B #:before, 上#行
-C #:上下文, 上下#行
正則表達式:就是一些符號代指文本,和前面的*有點類似,但是每個符號的意義完全不同,注意不要搞混
字符匹配: . :任意單個字符
[]:指定范圍的任意單個字符
[^]:制定范圍外的任意單個字符
[:space:][:digit:][:alnum:][:alpha:][:lower:][:upper:][:punct:]
意思同通配符
字數匹配: * :前邊的字符出現任意次數0,1,2,。。。。
\?:前邊的字符出現0或者1次,即前邊的數據可有可無
\+:前邊的字符出現1次以上
\{m\}:前邊的字符出現m次,多一次少一次都不行
\{m,n\}:前邊的字符最多出現n次最少出現m次
\{0,n\}:前邊的字符最多出現n次
\{m,\}:前邊的字符最少出現m次
位置錨定: ^:行首,放在pattern最左側
$:行位 右側
^$:空白行,連空格都沒有
^[:space:]*$:空行,有空格
\<:詞首,放在單詞的最左側
\>:詞尾, 右側
\<\>:單詞錨定
分組及引用:\(\):將多個字符括成一個整體
\1:是指,前邊的括號,從最左側的第一個左括號起,到其匹配的括號為止,括號裡邊的內容
\2: 二個
\3: 三個
\4: 四個
注:這種引用方式叫做後向引用
egrep:擴展正則表達式內容基本上同正則表達式相同,只是在字數匹配時做轉義用的\可以不用添加
不同
或: |:|左側全部內容或者|右側全部內容
注意:|在某些環境下使用時要加上\來轉義
C|cd:是指C或者cd而不是Cd或者cd,想表達後者的意思需要用到分組,即加括號
\(C|c\)d來表示
fgrep:不支持正則表達式的grep,並不是沒用的,因為我們將來要檢索的文檔很多都是數據十分龐大的大文檔,所以,在用不到正則表達式的是
後使用fgrep的效率將會更高
正則表達式是一個重要的內容,也是一個需要動腦的內容,應該多做練習
本文出自 “博客作業初版” 博客,謝絕轉載!