Linux文字處理工具(grep sed awk)

2021-09-26 07:31:09 字數 3784 閱讀 6006

文字處理

說明grep -c 『str』 /tmp/test

列印符合要求的行的數目。

grep -i 『str』 /tmp/test

輸出符合要求的行,忽略str大小寫。

grep -n 『str』 /tmp/test

輸出符合要求的行及行號。

grep -v 『str』 /tmp/test

輸出不符合要求的行。

grep -a2 『str』 /tmp/test

輸出符合要求的行以及下面2行。

grep -b2 『str』 /tmp/test

輸出符合要求的行以及上面2行。

grep -c2 『str』 /tmp/test

輸出符合要求的行以及上下各2行。

grep 『str』 /tmp/test

在檔案 『/tmp/test』 中查詢 "str"並列印顯示。

grep 『^str』 /tmp/test

在檔案 『/tmp/test』 中查詢以 「str」 開始的行並列印顯示。

grep 『[0-9]』 /tmp/test

查詢 『/tmp/test』 檔案中所有包含數字的行並列印顯示。

grep -v 『[0-9]』 /tmp/test

查詢 『/tmp/test』 檔案中所有不包含數字的行並列印顯示。

grep 『[^0-9]』 /tmp/test

查詢 『/tmp/test』 檔案中所有非純數字的行並列印顯示。

grep 『^ [^0-9]』 /tmp/test

輸出不以數字開頭的行,^[0-9]表示以數字開頭的行,[^0-9]表示除0-9之外的字元)。

grep 『r..t』 /tmp/test

輸出r和o之間有兩個任意字元的行,(.表示任意字元)。

grep 『c*』 /tmp/test

輸出含有0個或多個字元c的行,(*表示0個或多個前面的字元)。

grep 『o\』 /etc/passwd

符號{}裡的數字表示前面字元o要重複2次。

grep 『o\』 /etc/passwd

符號{}裡的數字表示前面字元o要重複的次數,表示o重複1次到3次。

grep str -r /tmp/*

在目錄 『/tmp』 及其子目錄中查詢 「str」。

grep -v 『^#』 /etc/inittab |grep -v 『^$』

過濾掉所有以#開頭的行和所有空行(#表示行的開始,katex parse error: expected group after '^' at position 14: 表示行的結尾,空行可以用'^̲'表示)。

egrep 『ao+』 /etc/passwd

輸出乙個或多個含有前面的字元o的行。

egrep 『rao?』 /etc/passwd

輸出0個或1個含有前面的字元o的行。

egrep 『root | 11 | 99』 /etc/passwd

輸出含有字串『root』或『11』或『99的行。

egrep 『r(oo)+ | (oper)』 /etc/passwd

用『()』表示乙個整體,(oo)+表示乙個或者多個『oo』。

命令功能

sed -n 'n』p file

列印file檔案第n行內容,'n』表示第n行。

sed -n '1,$'p file

列印file檔案所有行。

sed -n '1,3』p file

列印file檔案第1行到第3行。

sed -n '/root/'p file

列印file檔案中含有』root』字串的行,特殊符號^、$、.、*使用同grep。

sed -n -e '1』p -e '/root/'p file

列印file檔案第一行和含字串』root』的行。

sed '1』d file

列印時不顯示file檔案第一行。

sed '2,4』d file

列印時不顯示file檔案第2到第4行。

sed '/root/'d filw

列印時不顯示file檔案中含』root』字串的行。

sed 『7s@o@x@g』 file

字元』o』替換成』x』,『s』表示替換,g表示本行全部替換,不加g只替換本行出現的第乙個』o』,』/『分隔符,也可使用』#』、』@』。

sed 『7,9s/o/x/g』 file

字元』o』替換成』x』,『s』表示替換,g表示7到9行全部替換,不加g只替換每行出現的第乙個』o』,』/『分隔符,也可使用』#』、』@』。

sed 『1,$s/[0-9]//g』 file

列印時不顯示file檔案中所有的數字。

sed 『s/ \(rot\)\(.*\)\(bash\)/ \3\2\1/』 file

調換』rot』與』bash』字串的位置,特殊符號前必須加上脫意字元』』,』()'表示把要替換的字元打包成乙個整體。

sed 『s/222/123&/』 file

在字串』222』行首加上指定內容』123』。

sed 『s/222/&123/』 file

在字串』222』行尾加上指定內容』123』。

sed 『s/^.*$/123&/』 file

在所有行行首加上指定內容』123』。

sed 『s/^.*$/&123/』 file

在所有行行尾加上指定內容』123』。

sed -i 『s/ro/ot/g』 file

修改檔案內容,字串』ro』替換成』ot』。

命令功能

awk f 『:』 『』 file

列印擷取的文件某段內容,-f作用是指定分隔符,沒有-f則以空格或tab為分隔符,$1為第乙個字段,$0表示整行。

awk f 『:』 『』 file

列印擷取的文件某段內容,print可以列印自定義內容,但自定義內容要用雙引號括起來。

awk 『/ot/』 file

列印含』ot』字串的行。

awk -f 『:』 『$1~/oo/』 file

列印第一段含有』oo』 字串的行。

awk -f 『:』 '/root/ /test/ 』 /etc/passwd

多次匹配,現匹配』root』,在匹配』test』,只列印所匹配的段。

awk -f 『:』 『$3>=500』 /etc/passwd

列印第3段大於等於500的行,500表示數字,"500"表示字串。

awk -f 『:』 『$3<$4』 /etc/passwd

列印第4段大於第3段的行。

awk -f 『:』 『$3>「5」 && $3<「7」』 /etc/passwd

列印第3段大於5並且小於7的行。

awk -f 『:』 『$3>「5」 || $7=="/bin/bash"』 /etc/passwd

列印第3段大於5或第7段等於"/bin/bash"的行。

awk -f 『:』 『』 /etc/passwd

列印分隔符分隔後每行有多少段,$nf表示最後一段。

awk -f 『:』 『』 /etc/passwd

列印行號,nr可作為判斷條件。

awk 『nr>20』 /etc/passwd

列印第20行以後的所有行。

awk -f 『:』 『$1=「root」』 /etc/passwd

列印第一段的值替換成"root"後的檔案。

awk -f 『:』 『』 /etc/passwd

計算第3段加第4段的和並列印整行。

awk -f 『:』 『;end』 /etc/passwd

計算並列印第3段的總和,end表示所有的行都已經執行。

文字處理工具grep

linux中的文字處理三劍客 grep 文字過濾工具 模式 pattern 工具 sed stream editor。流編輯器 文字編輯工具 awk linux上的實現為gawk,文字報告生成器 格式化文字 grep 作用 文字搜尋工具,根據使用者指定的 模式 過濾條件 對文字逐行匹配檢查後列印匹配...

linux文字處理工具之grep

常用的grep選項 c 只輸出匹配行的計數。這條有時候很有用,不需要再 wc l i 不區分大小寫 只適用於單字元 h 查詢多檔案時不顯示檔名。l 查詢多檔案時只輸出包含匹配字元的檔名。n 顯示匹配行及行號。s 不顯示不存在或無匹配文字的錯誤資訊。v 顯示不包含匹配文字的所有行。例子grep v s...

linux中的文字處理工具 grep

格式 grep options pattern file 引數作用 v顯示不被匹配到的行 e相當於egrep,支援拓展正在表示式 o僅顯示匹配到的字串 w匹配整個單詞 n顯示匹配到的行號 i忽略大小寫 q靜默模式,不輸出任何資訊 e實現多選項建的邏輯或關係 f file 根據模式檔案處理 a 顯示匹...