1、grep能夠接受正則表達(dá)式和通配符。
grep match_pattern filename
一個(gè)grep命令可以對(duì)多個(gè)文件進(jìn)行搜索:grep "match_object" file1 file2 file3
用 - - color 選項(xiàng)可以在輸出行中重點(diǎn)標(biāo)記出匹配到的單詞:grep word file - -color=auto
grep 通常將match_pattern視為通配符。如果使用正則表達(dá)式,需要添加-E選項(xiàng),這意味著使用擴(kuò)展正則表達(dá)式,也可以使用默認(rèn)允許正則表達(dá)式的grep命令-----egrep。
grep -E "[a-z]+"? 等價(jià)于 egrep "[a-z]+"
為了只輸出文件中匹配到的文本部分,可以使用選項(xiàng):-o
echo this is a line. | grep -o -E "[a-z]+\."
要想打印除包含match_pattern的行之外的所有行,可以使用:-v。 選項(xiàng)-v可以將匹配到的結(jié)果進(jìn)行反轉(zhuǎn)。
grep -v match_pattern file
1、遞歸搜索文件
如果需要在多級(jí)目錄中對(duì)文件進(jìn)行遞歸搜索,可以使用: grep “text”? .? -R -n;命令中的“.”,表示指定了當(dāng)前目錄。
2、忽略樣式中的大小寫
選項(xiàng)-i可以使匹配樣式不考慮字符的大小寫,例如:
echo hello world | grep -i "HELLO"
3、用grep匹配多個(gè)樣式
可以命令行參數(shù)選項(xiàng)-e來指定多個(gè)匹配樣式。
grep -e "pattern1" -e "pattern2"
為了指明輸入的文件名是以0值字節(jié)(\0)作為終止符,我們應(yīng)該在xargs中使用-0.
grep “test” file* -lZ? | xargs -0 rm?
cut命令用于按列切分文件
cut -d ";" -f 2,3 filename? -d用來指定字段的定界符。
cut命令有一些選項(xiàng)可以將一串字符作為列來顯示。
-b表示字節(jié);-c表示字符;-f表示定義字段。
sed命令主要是進(jìn)行文本替換的。sed可以替換給定文件中的字符串。它可以利用正則表達(dá)式進(jìn)行匹配。
sed 's/pattern/replace_string/'? file? 或者? cat file | sed ‘s/pattern/repace_string/’ file
使用-i選項(xiàng),可以將替換結(jié)果應(yīng)用于原文件。
sed? -i? 's/pattern/replace_string/'? file
如果需要替換所有內(nèi)容,我們需要在命令尾部加上參數(shù)g。其方法如下:
sed 's/pattern/replace_string/g'? file? 后綴g意味著sed會(huì)替換每一處匹配。
sed移除空白行,空白和可以用正則表達(dá)式^$匹配。
sed '/^$/d' file