Linux 第七天: (08月05日) 文本處理工具
head -n 指定貨權前n行
tail -n 指定獲取后n行
tail -f 顯示文件新追加內容
tail -n 0 -f /var/log/messages & 后臺監控日志
cut -d 指明分隔符,默認tab
cut -f 第幾個字段
cut -c 按字符切割
paste -d 指定分隔符 file1 file2
paste -s 所有行合成一行顯示
wc -l 統計行數
wc -w 統計單詞數
wc -c 統計字節數
wc -m 統計字符數
sort -r 反向排序
sort -n 按數排序
sort -f 忽略大小寫
sort -u 刪除重復行
sort -t c 以c作為字段界定符
sort -k X
uniq -c 統計每行重復出現次數
uniq -d 統計重復的行
uniq -u 統計不重復的行
paste -d 指定分隔符 file1 file2
paste -s 所有行合成一行顯示
diff file1 file2 比較兩文件區別
diff -u file1 file2 > file3.patch
patch -b file1 file2 自動備份改變的文件
grep: Global search REgular expression and Print out the line
grep "$USER" /etc/passwd
grep '$USER' /etc/passwd
grep `whoami` /etc/passwd
grep –color=auot 對匹配的文本著色顯示
grep -v 顯示不能被匹配的行
grep -i 忽略大小寫
grep -n 顯示行號
grep -c 統計行數
grep -o 僅顯示匹配的字符串
grep -q 靜默, 不輸出信息
grep -A n 后n行
grep -B n 前n行
grep -C n 前后各n行
grep -e COMM1 -e COMM2 多個之間or關系
grep -w 匹配整個單詞
grep -E 使用ERE
REGEXP 基本正則表達式 BRE
REGEXP 擴展正則表達式 ERE, grep -E, egrep
字符匹配
. 匹配任意單個字符
[] 匹配指定范圍內的任意單個字符
[^] 匹配指定范圍外的任意單個字符
元字符
[:digit:] 所有數字
[:lower:] 所有小寫字母
[:upper:] 所有大寫字母
[:alpha:] 所有字母
[:alnum:] 所有字母數字
[:punct:] 所有標點符號
[:space:] 空格和tab
匹配次數
* 匹配前面字符任意次數, 包括0次
.* 任意長度的任意字符
\? 匹配前面字符0或1次
\+ 匹配前面字符至少1次
\{n\} 匹配前面字符n次
\{m,n\} 匹配前面字符至少m次,至多n次
\{,n\} 匹配前面字符至多n次
\{n,\} 匹配前面字符至少n次
位置錨定
^ 行首錨定, 用戶模式最左側
& 行尾錨定, 用于模式最右側
^ $ 用于模式匹配整行
^& 空行
^[[:space:]]*$ 空白行
\<或\b 詞首錨定 用于單詞模式的左側
\>或\b 詞尾錨定 用于單詞模式的右側
\< \> 匹配整個單詞
分組
\( \)
egrep及擴展到正則表達式
字符匹配
egrep = grep -E
. 任意單個字符
[]指定范圍的字符
[^] 不在指定范圍的字符
次數匹配
* 匹配前面字符任意次數
? 匹配前面字符0或1次
{m} 匹配m次
{m,n} 至少m次, 至多n次
擴展正則表達式
位置錨定
^ 行首
$ 行尾
\< \b 語首
\> \b 語尾
分組
()
\1 \2 后向引用
C|cat C或cat
(C|c)at Cat或cat
原創文章,作者:dengjian,如若轉載,請注明出處:http://www.www58058.com/30891