cat:concatenate 文本文件查看工具
cat [option] filename…
-n:給顯示出來的文本行加上編號
-b:非空行編號
-V:顯示 ^
-E:顯示行結束符$
-T:顯示制表符
-A:顯示所有控制符-A=-VET
-s:壓縮連續的空行成一行
如:cat /etc/fstab /etc/passwd 同時查看多個文件
df | cut -d:
tac:文本文件查看工具
用法同cat 只是文件內容的行逆序顯示
rec:文本文件查看工具
用法同cat 只是文本文件每一行的內容倒過來顯示
head:查看文件的前幾行(默認10行)
head [option] FILE
head -n #:指定查看行數,可簡寫為:-#
tail:查看文件的后幾行(默認10行)
tail [option] FILE
tail -n #:指定查看行數,可簡寫為:-#
-f:查看文件尾部內容結束后不退出
跟隨顯示新增的行,監控日志文件增長時非常有用
tail -f -n0 test.txt & 后臺運行日志文件監控
分屏查看命令:more,less
more:more file
特點:翻屏至文件尾部時自動退出
less:less file
man調用的就是less命令,用法同man一樣
cut:剪輯命令——篩選顯示文件內容
cut [OPTION]… [FILE]…
-d 指定分隔符(默認tab)
-f 指定顯示字段
#: 第#個字段
m,n:第m段,第n段
m-n:第m段到第n段
混合使用:m-n,#
-c 按字符切割
–output-delimiter=STRING指定輸出分隔符
如:cut -d:-f1,5,7 /etc/passwd
paste 合并兩個文件同行號的列到一行后顯示
paste [OPTION]… [FILE1] [FILE2]…
-d 分隔符:指定分隔符(默認用TAB)
-s : 先將文件各自所有的行合成一行后再把兩個文件的內容合并顯示
paste file1 file2 > file 產生真實合并效果
paste -s file1 file2
wc:world count文本統計命令
wc [option] file
-l:僅顯示文本文件的行數
-w:僅顯示文件文件的字數
-c:僅顯示文本文件的字節數
-m:僅顯示文本文件的字符數
sort:文件內容排序顯示
sort [option] file
-n:以數值大小進行排序
-u:排序后去重
-f:忽略字符大小寫
-r:逆序排列
-t:指定分隔符
-k:指定排序字段
如:sort -nt: -k3 /etc/passwd
uniq:顯示文件中的重復行(完全相同切連續的行)
uniq [option] file
-d:只顯示重復的行
-c:顯示文件中行重復的次數
-u:僅顯示不重復的行
常和sort 命令一起配合使用:
sort userlist.txt | uniq -c
diff:比較兩個文件之間的區別
diff [option] file1 file2
如:diff foo.conf-broken foo.conf-works
5c5
< use_widgets = no
—
> use_widgets = yes
? 注明第5行有區別(改變)
diff 命令的輸出被保存在一種叫做“補丁”的文件中,使用 -u 選項來輸出“統一的(unified)”diff格式文件,最適用于補丁文件。
patch 命令復制在其它文件中進行的改變(要謹慎使用?。?br /> ? 適用 -b 選項來自動備份改變了的文件
diff -u foo.conf-broken foo.conf-works > foo.patch
patch -b foo.conf-broken foo.patch
linux文本處理三劍客
grep:文本過濾工具
? sed:stream editor,流編輯器
? awk:Linux上的實現gawk,文本報告生成器
grep: Global search REgular expression and Print out the line
用途grep:根據模式搜索文本,并將符合模式的文本行顯示出來
parttern(模式):文本字符和正則表達式的元字符組合而成的匹配條件
grep, egrep, fgrep(不支持正則表達式搜索)
grep [OPTIONS] PATTERN [FILE…]
? –color=auto: 對匹配到的文本著色顯示;
? -v: 顯示不能夠被pattern匹配到的行;
? -i: 忽略字符大小寫
? -n:顯示匹配的行號
? -c: 統計匹配的行數
? -o: 僅顯示匹配到的字符串
? -q: 靜默模式,不輸出任何信息
? -A #:after, 顯示匹配行之后相連的#行
? -B #: before, 顯示匹配行之前相連的#行
? -C #:context, 顯示匹配行前后各#行
-w:整行匹配整個單詞
? -E:使用擴展正則表達式 等同于egrep
? -e:多個選項間的邏輯或關系
如:grep –e ‘cat ’ -e ‘dog’ file
REGEXP:由一類特殊字符及文本字符所編寫的模式,其中有些字符(元字符)不表示字符字面意義,而表示控制或通配的功能
程序支持:grep, vim, less,nginx等
分兩類:
基本正則表達式:BRE
擴展正則表達式:ERE
正則表達式引擎:
采用不同算法,檢查處理正則表達式的軟件模塊
PCRE(Perl Compatible Regular Expressions)
元字符分類:字符匹配、匹配次數、位置錨定、分組
字符匹配:使用時元字符外面需再套一個[]
. : 匹配任意單個字符;
[] : 匹配指定范圍內的任意單個字符
[^] :匹配指定范圍外的任意單個字符
[:digit:]所有數字
[:upper:]所有大寫字母
[:lower:]所有小寫字母
[:alpha:]所有大小寫字母
[:alnum:]數字和大小寫字母
[:punct:]標點符號
[:space:]空格
匹配次數:用在要指定次數的字符后面,用于指定前面的字符要出現的次數
*:匹配前面的字符任意次,包括0次
貪婪模式:盡可能長的匹配
\:轉義符
.*:任意長度的任意字符
\?:匹配其前面的字符0或1次
\+:匹配其前面的字符至少1次
\{m\}:匹配前面的字符m次
\{m,n\}:匹配前面的字符至少m次,至多n次
\{,n\}:匹配前面的字符至多n次 <=n
\{m,\}:匹配前面的字符至少m次 >=n
位置錨定:定位出現的位置
^:行首錨定,用于模式的最左側
$:行尾錨定,用于模式的最右側
^PATTERN$: 用于模式匹配整行
^$: 空行
^[[:space:]]*$ :空白行
\< 或 \b:詞首錨定,用于單詞模式的左側
\> 或 \b:詞尾錨定;用于單詞模式的右側
\<PATTERN\>:匹配整個單詞
分組:\(\):將一個或多個字符捆綁在一起,當作一個整體進行處理,如:\(root\)\+
分組括號中的模式匹配到的內容會被正則表達式引擎記錄于內部的變量中,這些變量的命名方式為: \1, \2, \3, …
\1: 從左側起,第一個左括號以及與之匹配右括號之間的模式所匹配到的字符;
后向引用:引用前面的分組括號中的模式所匹配字符(而非模式本身)
找出帳戶列表中用戶名和SHELL名稱一樣的行
egrep及擴展正則表達式
egrep = grep -E
egrep [OPTIONS] PATTERN [FILE…]
擴展正則表達式的元字符:
字符匹配:
. 任意單個字符
[] 指定范圍的字符
[^] 不在指定范圍的字符
次數匹配:
*:匹配前面字符任意次
?: 0或1次
+:1次或多次
{m}:匹配m次
{m,n}:至少m,至多n次
位置錨定:
^ :行首
$ :行尾
\<, \b :語首
\>, \b :語尾
?分組:
()
后向引用:\1, \2,
或者:
a|b
C|cat: C或cat
(C|c)at:Cat或cat
原創文章,作者:愛情防火墻,如若轉載,請注明出處:http://www.www58058.com/29274