本節主要了解文本處理工具
文件查看命令:cat tac rev
cat [OPTION]… [FILE]…
-E:顯示行結束符$
-n:對顯示出的每一行進行編號
-A:顯示所有控制符
-b:非空行編號
-s:壓縮連續的空行成一行
tac:倒著顯示內容
rev:倒著顯示內容,同一行內也倒著
分頁查看文件:more
more [OPTIONS…] FILE…
-d:顯示翻頁及退出提示
less :一頁一頁地查看文件或STDIN 輸出
查看時有用的命令包括:
/文本 搜索 文本
n/N:跳到下一個 or 上一個匹配
less 命令是man命令使用的分頁器
顯示文本前或后行內容
head [OPTION]… [FILE]…
-c #:指定獲取前#字節
-n #:指定獲取前#行
-#:指定行數
tail [OPTION]… [FILE]…
-c #:指定獲取后#字節
-n #:指定獲取后#行
-#:
-f:跟蹤顯示文件新追加的內容,常用日志監控
文本內容切割:cut
cut [OPTION]… [FILE]…
-d delimiter: 指明分隔符
-f fileds:指明需要取出的字段
#:第#個字段
#,#,# :離散的多個字段,例如1,2,3
#-#:連續的多個字段, 例如1-6
混合使用:1-3,7,9,10-13
-c 按字符切割
–output-delimiter=STRING 指定輸出分隔符
合并文件
paste 合并兩個文件同行號的列到一行
paste [OPTION]… [FILE]…
-d:分隔符: 指定分隔符,默認用TAB
-s:所有行合成一行顯示
字符統計:wc
wc [OPTION]…[FILE]…
-l:統計行數
-w:統計單詞個數
-c:統計字符個數
-m:只計字符總數
其中1是行數,2是單詞個數,7是字符數
文本排序:sort
把整理過的文本顯示在STDOUT ,不改變原始文件
sort [OPTION]… [FILE]…
-r:逆序
-n:以數字大小進行排序
-f:忽略字符串中的字符大小寫
-u:刪除輸出中的重復的行
-t c:使用c 做為字段界定符
-k #:以指定字段為標準排序
取第三列以數字大小排列
從輸入中刪除重復的前后相接的行:uniq
uniq [OPTION] …[INPUT[OUTPUT]]
-c:顯示每行重復的次數
-d:僅顯示重復的行
-u:僅顯示不重復的行
grep :
文本過濾( 模式:pattern) 工具;grep, egrep, fgrep (不支持正則表達式)
作用:文本搜索工具,根據用戶指定的“模式”對目標文本逐行進行匹配檢查;打印匹配到的行;
模式:由正則表達式字符及文本字符所編寫的過濾條件
grep [OPTIONS] PATTERN [FILE…]
–color=auto: 對匹配到的文本著色顯示;
-v:顯示不能夠被pattern 匹配到的行;
-i:忽略字符大小寫
-n:顯示匹配的行號
-c:統計匹配的行數
-o:僅顯示匹配到的字符串;
-q:靜默模式,不輸出任何信息
-A #:after,匹配到的后#行
-B #: before,匹配到的前#行
-C #:context,匹配到的前后各#行
-e:實現多個選項間的邏輯or 關系
grep -e ‘cat ’ -e ‘dog’ file
-w :整行匹配整個單詞
-E :使用ERE,支持使用擴展的正則表達式
元字符:
字符匹配:
. :匹配任意單個字符
[]:匹配指定范圍內的任意單個字符
[^]:匹配指定范圍外的任意單個字符
表達方法:
[:alnum:]:表示所有字母和數字
[:alpha:]:表示所有的字母(不區分大小寫)
[:digit:]:表示所有的數字
[:lower:]:表示所有的小寫字母
[:upper:]:表示所有的大寫字母
[:space:]:表示所有的空白符號
[:punct:]:表示所有的標點符號
次數匹配:用在要指定次數的字符后面,用于指定前面的字符要出現的次數
*:匹配前面的字符任意次,包括0次 次
默認正則表達式是工作在貪婪模式下,盡可能長的匹配
.* :任意長度的任意字符
\? :匹配其前面的字符0 或1次,即可有可無
\+ :匹配其前面的字符至少1次
\{m\} :匹配前面的字符m次
\{m,n\} :匹配前面的字符至少m 次,至多n次(小于等于,大于等于)
\{0,n\} :匹配前面的字符至多n次
\{m,\} :匹配前面的字符至少m次
位置錨定:對特定位置進行定位
^:行首錨定,用于模式的最左側
$:行尾錨定,用于模式的最右側
^PATTERN$:用于模式匹配整行
^$:空行,不包含有空格的行
^[[:space:]]*$:空白行,包含有空格的行
\< 或 或 \b:詞首錨定,用于單詞模式的左側
\> 或 或 \b:詞尾錨定;用于單詞模式的右側
\<PATTERN\>:匹配整個單詞
分組:是指將一個或多個字符捆綁在一起,當做一個整體進行處理
符號是: \(\):
如:\(xy\)*ab 表示xy這個整體可以出現無數次
查找出passwd文件中,r后跟任意小寫字母再跟t的字符
擴展正則表達式元字符:
字符匹配:
.:任意單個字符
[]:指定范圍內的單個字符
[^]:不在指定范圍內的單個字符
次數匹配:
*:任意次
?:0次或1次
+:至少1次
{m}:精確匹配m次
{m,n}:至少m次,至多n次
{m,}:至少m次
{0,n}:最多n次
分組:
():用括號括起來表示要引用的內容,不需要轉義
或者:
a|b:a或者b
原創文章,作者:Dadi,如若轉載,請注明出處:http://www.www58058.com/30763