學習啦 > 學習電腦 > 操作系統(tǒng) > Linux教程 > linux文本內容操作系列grep命令詳解

linux文本內容操作系列grep命令詳解

時間: 志藝942 分享

linux文本內容操作系列grep命令詳解

  Linux系統(tǒng)中grep命令是一種強大的文本搜索工具,它能使用正則表達式搜索文本,并把匹 配的行打印出來。grep全稱是Global Regular Expression Print,表示全局正則表達式版本,它的使用權限是所有用戶。接下來是小編為大家收集的linux文本內容操作系列grep命令詳解,歡迎大家閱讀:

  linux文本內容操作系列grep命令詳解

  grep

  這算是文本內容的一個重量級選手,能根據(jù)某些規(guī)格在上千行的文本文件中查找所需要的數(shù)據(jù)。他能接受正則表達式和通配符。

  礎實例:

  1. 命令翻譯包含給定match_pattern的文本行,如我在grep.txt中查找PATTERN

  grep PATTERN grep.txt

  or grep "PATTERN" grep.txt

  2. 匹配多個文件

  grep PATTERN grep.txt grep1.txt

  3. 從stdin中讀取

  echo –e "this is a word\nnext line" | grep word

  打?。簍his is a word

  4. grep 與 正則表達式

  grep –E "[a-z]+"

  或者

  egrep "[a-z]+"

  5. 只輸出匹配部分,而不是匹配的當前行

  echo this is line. | greip –o –E "[a-z]+\."

  輸出:line

  6. 打印除包含match_pattern的行之外的所有行,可使用

  grep -v match_pattern file

  7. 統(tǒng)計文本或者文件中包含匹配字符串的字數(shù)(這個面試經(jīng)常會問到)

  $grep -c "text" filename

  但他給出的是匹配行的次數(shù),而不是匹配的次數(shù)

  統(tǒng)計匹配數(shù)量的話,可以用到下面的技巧

  $echo –e "1 2 3 4\nhello\n5 6"| egrep -o "[0-9]" | wc –l

  打印1到6 | 從stdin中讀取數(shù)字,分行打印 | 統(tǒng)計行數(shù)

  8. 打印行號

  grep "text" -n filename

  9. 搜2個文件,以及他們的行號,輸出會打印文件名

  grep "text"–n s1.txt s2.txt

  10.如果你只想知道哪些文件有 單詞PATTERN

  grep –l PATTER s1.txt s2.txt

  -L則返回的不匹配文件列表

  11.可以再整個目錄下查找 單詞PATTERN 在那些文件里

  grep PATTERN . -R -n

  12 同時多個匹配查找

  echo this is a line of text | grep -e "this" -e "line" -o

  打印:

  this

  line

  13 只在某些合適的文件中搜索

  grep "main()" .-r --include *.{c,cpp}

  只在.c 和.cpp結尾的文件中搜索 main()

  14 進行搜索排除某些文件

  grep "main()" . -r --exclude "README"

  排除了所有文件名為"README"的文件

  15 打印匹配之前或之后的3行

  seq 10 | grep 5 –A 3 之前

  seq 10 | grep 6 –B 3 之后

  16 打印匹配前后3行,同時輸出

  seq 10 | grep 5 –C 3

  我們來看下--help

  復制代碼代碼如下:

 

  
看了“linux文本內容操作系列grep命令詳解”還想看:

1.Linux系統(tǒng)中怎么使用grep命令

2.15個Linux Grep命令使用實例

3.Linux中常用操作命令總結

4.Linux常用操作命令匯總

2991469