国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Linux > 正文

一天一個shell命令 linux文本內(nèi)容操作系列-grep命令詳解

2019-10-26 18:48:18
字體:
供稿:網(wǎng)友

從這篇開始,是文本內(nèi)容操作,區(qū)別于文本操作。

Linux系統(tǒng)中g(shù)rep命令是一種強大的文本搜索工具,它能使用正則表達式搜索文本,并把匹 配的行打印出來。grep全稱是Global Regular Expression Print,表示全局正則表達式版本,它的使用權(quán)限是所有用戶。

shell,perl,python,一直都是文本操作的專家語言,而我們今后學(xué)習(xí)的的將是shell的噱頭--文本操作。下面提到最常見的一個:

grep

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

礎(chǔ)實例:

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

打印:this 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結(jié)尾的文件中搜索 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

代碼如下:
用法: grep [選項]... PATTERN [FILE]...
在每個 FILE 或是標準輸入中查找 PATTERN。
默認的 PATTERN 是一個基本正則表達式(縮寫為 BRE)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 克拉玛依市| 株洲县| 北流市| 晋江市| 鄂托克旗| 南投县| 彝良县| 永新县| 大新县| 博客| 六枝特区| 京山县| 兴仁县| 体育| 宜君县| 唐山市| 浦东新区| 绥中县| 登封市| 沭阳县| 太谷县| 惠水县| 乐陵市| 苏尼特左旗| 祁阳县| 阿拉善左旗| 宣威市| 时尚| 上犹县| 永善县| 南投县| 尼木县| 宝坻区| 礼泉县| 碌曲县| 榕江县| 乌鲁木齐市| 高州市| 抚宁县| 新巴尔虎右旗| 通化县|