一、正則表達式
正則表達式:是一類字符所書寫出的模式(pattern)
元字符:類似通配符,不表示字符本身的意義,用於額外功能性的描述
基本正則表達式(BRE)和擴展正則表達式(ERE)
基本正則元字符:
字符匹配: . : 任意單個字符 [] : 指定範圍內的任意單個字符 [^] : 指定範圍外的任意單個字符 [0-9],[:digit:] : 數字 [a-z],[:lower:] : 小寫字母 [A-Z],[:upper:] : 大寫字母 [:alpha:] : 大小寫字母 [:alnum:] : 字母+數字 [:space:] : 空格 [:putct:] : 標點符號 匹配次數: * : 匹配前一個字符的任意次(包括0次) .* : 匹配任意長度的任意次 \? : 0次或1次 \+ : 至少1次 \{n\} : n次 \{n,\} : 至少n次 \{,n\} : 至多n次 \{n,x\} : 至少n次至多x次 位置錨定: ^ : 錨定行首 $ : 錨定行尾 ^$ : 表示空行 ^[[:space:]]*$ : 空白行 \<,\b : 錨定詞首 \>,\b : 錨定詞尾 分組: \(\) 引用: \1:後向引用,引用第一個括號左匹配到的字符串。
擴展正則表達式:
字符匹配: . : 任意單個字符 [] : 指定範圍內的任意單個字符 [^] : 指定範圍外的任意單個字符 匹配次數: * : 匹配前一個字符的任意次(包括0次) .* : 匹配任意長度的任意次 ? : 0次或1次 + : 至少1次 {n} : n次 {n,}: 至少n次 {,n} : 至多n次 {n,x} : 至少n次至多x次 位置錨定: ^ : 錨定行首 $ : 錨定行尾 ^$ : 表示空行 ^[[:space:]]*$ : 空白行 \<,\b : 錨定詞首 \>,\b : 錨定詞尾 分組: () 引用: \1:後向引用,引用第一個括號左匹配到的字符串。 或: ac|bc : ac或者bc
二、文本處理命令
grep : 文本過濾
grep [option] file 選項: -v : 取反 -i : 忽略大小寫 -n : 顯示匹配行的行號 -c : 統計匹配的行數 -q : 靜默模式,不輸出任何信息 -o : 僅顯示匹配到的字符串 -A n : 匹配搜索到的字符串的後n行 -B n :匹配搜索到的字符串的前n行 -C n :匹配搜索到的字符串的前後n行 -e :實現多個選項間的邏輯or關係 grep -e 'str0' -e 'str1' file -w : 匹配整個單詞 -E : 支持擴展正則表達式
wc : 統計文件
wc [option] file 選項: -l :行數 -w :單詞數 -c :字節數 -m :字符數 -L :最長行的字符數
sort : 排序
選項 -t : 指定分隔符 -k : 指定以第N列進行排序 -n : 以數字大小排序 -r : 倒序排序 -u : 去除重複行
uniq :去除文件中相鄰的重複行
選項: -c :顯示每行重複出現的次數 -d : 僅顯示重複過的行 -u : 僅顯示不曾重複的行
cat : 查看文件內容 cat [options] file 選項: -n : 顯示行號 -b : 顯示行號,空行不顯示行號 -E : 顯示結束符 $ -A : 顯示所有特殊符號 -s : 將連續空行壓縮成一行 tac :反向顯示 rev : 反向顯示字符串,abc > cba nl : 顯示行號,空行不添加行號 more : 分頁顯示,不能向前翻頁 more [option] file 選項: +n : 從第n行開始顯示 -n : 每次顯示n行數據 -c :清屏再現實 -p : 換頁時清屏 less : 分頁顯示,不自動退出 -N : 顯示行號 查看文件時: /str : 向下搜索字符串 ?str : 向上搜索字符串 head : 顯示文件的前幾行 -c n : 取字符的前n個 tail : 顯示文件的後幾行 -f : 實時顯示 -F : 跟蹤文件名 tailf :類似tail -f,當文件不增長時不訪問文件,減少磁盤I/O cut:顯示行中的指定部分,刪除文件中指定字段。 -d : 指定分隔符 -f : 與-d一起使用,顯示第n列 -c : 按字符切割 paste :合併兩個文件相同行號的行到一行 -d :指定分隔符,默認用TAB -s :所有行合併成一行顯示