grep系:
grep ; egrep ; fgrep
grep就是利用正則表達式進行全局搜索並將匹配的行顯示出來;
格式:
grep [OPTIIONS] PATTERN [FILE...]
PATTERNN:過濾條件,是由正則表達式以及沒有特殊含義的文本字符組成的;
經常使用選項:
-i:忽略文本字符的大小寫;
-v:反向匹配,最終顯示的是PATTERN所不能成功匹配的行;
-c:計數,統計匹配PATTERN的全部行數;
-o:關閉貪婪模式,僅顯示PATTERN所可以匹配的內容;
-q:安靜模式,不輸出任何匹配的結果;
--color[=WHEN]:將匹配的內容以特殊顏色高亮顯示;
--color=auto
-E:拓展的正則表達式;grep -E=egrop;
-F:grep -F=fgrop
-G:基本的正則表達式,egrop -G至關於grop;
-P:使用pcre引擎;
-A NUM:在顯示匹配PATTERN行的同時顯示其後面的num行;
-B NUM:在顯示匹配PATTERN行的同時顯示其前面的num行;
-C NUM:在顯示匹配PATTERN行的同時顯示其先後各num行;
PATTERN:
正則表達式元字符:
基本的正則表達式元字符:
GLOBBING——————簡化的正則表達式: [] ? *
字符匹配:
.:匹配任意單個字符;
[]:匹配指定範圍內的任意單個字符;
[^]:匹配指定範圍之外的任意單個字符;
[:lower:]
[:upper:]
[:alpha:]
[:digit:]
[:space:]
[:alnum:]
[:punct:]
[:blank:]
[:xdigit:]:全部的十六進制數字;
a-z:全部的小寫字母;
A-Z:全部的大寫字母;
0-9:標識全部的十進制數字;
次數匹配:該類字符以前的那個字符能夠出現的次數;
*:其前面的字符能夠出現任意次(0,1或屢次)
\?:其前面的字符無關緊要(0,1)
\+:其前面的字符至少出現屢次(1或屢次)
\{m\}:其前面的字符必須出現m次;
\{m,n\}:其前面的字符至少出現m次,至多出現n次;
\{,n\}:其前面的字符至少出現0次,至多出現n次;
\{m,\}:其前面的字符其前面的字符至少出現m次,×××;
在正則表達式中,表示任意長度字符的方式:.*
位置錨定字符:
行錨定:
行首錨定:^
行尾錨定:$
字錨定:
字首錨定:\<
字尾錨定:\>
對於正則表達式引擎來講,字是由非特殊字符組成的連續字符串;
分組與引用字符:
\(PATTERN\):將次PATTERN所匹配到的全部字符看成一個不可分割的總體來處理;
在正則表達式引擎中,有一系列的內置變量,這些變量會保存全部分組內的字符信息,用於後向引用,這些變量分別依次是:
\1,\2,\3,...
patternl\(pattern2\)pattern3\(pattern4\(pattern5\)\)
\1:pattern2
\2:pattern4
\3;pattern5
\1:第一組小括號中的pattern匹配到的字符;
\2:第二組小括號中的pattern匹配到的字符;
……
grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]
默認狀況下,grep命令後面只容許有一個PATTERN
若是想要在一次grep所搜索過程當中寫多個PATTERN,則須要使用-e選項;每一個-e選項後面只能有一個PATERN做爲參數;
將所須要的PATTERN寫入到一個文件中,保證每行只有一個PATTERN:咱們就可使用-f FILE 選項來實現多PATTERN匹配;
egrep:
egrep [OPTION] PATTERN [FILE...]
拓展的正則表達式元字符;
字符匹配: . [] [^]
次數匹配: * ? + {m} {m,n} {m,} {0,n}
位置錨定: ^ $ \<,\b \>,\b
分組和引用: () \1, \2, \3,...或:|
其餘的文本處理命令:
wc:
wc [OPTION]... [FILE]...
-l:只顯示行數
-w:只顯示字數
-c:只顯示字符數
cut:remove sections from each line of files
可以被cut命令修剪的文件,通常都是具備必定結構或格式的文本文檔;/etc/passwd
cut OPTION... [FILE]...
-d, --delimiter=DELIM:指定在實施修剪操做時所依賴的分隔符,默認是空白字符;
-f, --fields=LIST:根據定義的分隔符來指定字段的編號;
地址定界使用方法:
#:選擇被指定的單個字段;
#,#:離散的多個被指定的單個字段;
#-#:連續的多個被指定的字段;
--output-delimiter=STRING:指定輸出分隔符;
awk:
awk -F "DELIMITER" '[/PATTERN/]{print $1,$2,...$NF}' FILE...
-F "DELIMITER":指定字段分隔符,默認爲空白字符;
$1,$2,...,$NF:根據字段分隔符切割出來的文本片斷都存放在相應的內部變量中;
sort:sort lines of text files,將文本文件按行繼續排序,默認排序規則是按照ASCII表中的字符順序進行,這個排序標準可修改;
-r, --reverse:逆序排序
-R, --random-sort:隨機排序,這種隨機算法是很是簡陋的,不適用於複雜環境;
-u, --unique:重複出現的行,只保留一行;(連續且徹底相同的行叫重複),祛重;
-n, --numeric-sort:以數字的數值大小進行排序;
-t, --field-separator=SEP:指定字段分隔符;
-k, --key=KEYDEF:指明根據哪一個關鍵字段進行排序,通常和-t同時使用;
uniq:report or omit repeated lines
-d, --repeated:只顯示重複出現的行,並且每一組重複行只顯示一行;
-u, --unique:只顯示不重複的行;
-c, --count:在每行之前綴的方式顯示重複行的重複次數;
diff:compare files line by line
同一文件的不一樣修改版本;打補丁;
patch:apply changes to files
patch [-R][-i patchfile] [file]git