linux 命令grep

来源:http://www.cnblogs.com/King-Penguin/archive/2016/01/25/5158997.html
-Advertisement-
Play Games

linux 命令grep grep命令用來搜索文本,或從給定的文件中搜索行內包含了給定字元串或單詞的文件。通常來說,grep顯示匹配的行。使用grep來搜索包括一個或多個正則表達式匹配到的文本行,然後只顯示匹配到的行。 grep命令的語法: grep ‘word’ 文件名 grep ‘wor...


linux 命令grep

  grep命令用來搜索文本,或從給定的文件中搜索行內包含了給定字元串或單詞的文件。通常來說,grep顯示匹配的行。使用grep來搜索包括一個或多個正則表達式匹配到的文本行,然後只顯示匹配到的行。

  grep命令的語法:

  grep  ‘word’  文件名

  grep  ‘word’  文件1  文件2  文件3

  grep  ‘字元串1  字元串2’  文件名

  commad  |  grep  ‘ 某個東西 ’

  commad  選項1  |  grep  ‘ 數據 ’

  grep  --color  ‘數據’  文件名

 


 

  使用grep來搜索一個文件

搜索文件

  搜索 /etc/passwd文件下的Linux用戶,輸入:

[root@centos-64-min ~]# grep Linux /etc/passwd

  輸出內容:

Linux:x:500:500::/home/Linux:/bin/bash

  可以使用grep去強制忽略大小寫。例如使用 -i 選項可以匹配linux  Linux  、LINUX和其他組合:

grep -i Linux /etc/passwd


 

遞歸使用grep

可以遞歸地使用grep進行搜索。例如在文件目錄下搜索所有包含的字元串"192.168.57.9"的文件

[root@centos-64-min ~]# grep -r "192.168.57.9" /etc/  

或是

[root@centos-64-min ~]# grep -R "192.168.57.9" /etc/

輸出結果  

/etc/sysconfig/network-scripts/ifcfg-eth0:IPADDR=192.168.57.9

你會看到搜索到192.168.57.9的結果每一行都首碼以找到匹配的文件名。輸出之中包含的文件名可以加-h選項來禁止輸出:

如:

[root@centos-64-min ~]# grep -hR "192.168.57.9" /etc/
IPADDR=192.168.57.9

或是

[root@centos-64-min ~]# grep -h -R "192.168.57.9" /etc/
IPADDR=192.168.57.9


使用grep去搜索文本

當你搜索Linux是,grep命令將會匹配Linux,linux123,Linux35和其他包含Linux的字元串 ,你可以用-w選項強制只輸出那些僅僅包含那個整個單詞的行。

[root@centos-64-min ~]# grep -w linux /etc/passwd


使用grep命令搜索兩個不同的單詞

egrep命令如下:

egrep  -w  ‘word1 | word2 ’ 、path/to/file

這裡使用到了正則表達式,因此使用的是egrep命令,即擴展的grep命令。


統計文本匹配的行數

grep命令可以通過加-c參數顯示每個文件中匹配到的次數:

grep  -c  ‘word’  /path/to/file

傳遞-n選項可以輸出的航前加入匹配到的行的行號:

grep  -n  ‘root’  /etc/passwd

如:

[root@centos-64-min ~]# grep -n 'root' /etc/passwd
1:root:x:0:0:root:/root:/bin/bash
11:operator:x:11:0:operator:/root:/sbin/nologin


反轉匹配

使用-v選項來輸出不包含匹配項的內容,輸出內容僅僅包含那些不含給定單詞的行,例如輸出所有不包含root的行

[root@centos-64-min ~]# grep -n 'root' /etc/passwd
1:root:x:0:0:root:/root:/bin/bash
11:operator:x:11:0:operator:/root:/sbin/nologin
[root@centos-64-min ~]# grep -n "root" /etc/passwd
1:root:x:0:0:root:/root:/bin/bash
11:operator:x:11:0:operator:/root:/sbin/nologin
[root@centos-64-min ~]# grep -v "root" /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
saslauth:x:499:76:"Saslauthd user":/var/empty/saslauth:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
Linux:x:500:500::/home/Linux:/bin/bash


管道與grep命令

grep常常與管道一起使用

如顯示磁碟設備的名稱:

[root@centos-64-min ~]# dmesg | egrep '(s|h)d[a-z]'
NMI watchdog disabled (cpu0): hardware events not enabled
sd 2:0:0:0: [sda] 41943040 512-byte logical blocks: (21.4 GB/20.0 GiB)
sd 2:0:0:0: [sda] Write Protect is off
sd 2:0:0:0: [sda] Mode Sense: 61 00 00 00
sd 2:0:0:0: [sda] Cache data unavailable
sd 2:0:0:0: [sda] Assuming drive cache: write through
sd 2:0:0:0: [sda] Cache data unavailable
sd 2:0:0:0: [sda] Assuming drive cache: write through
sda: sda1 sda2
sd 2:0:0:0: [sda] Cache data unavailable
sd 2:0:0:0: [sda] Assuming drive cache: write through
sd 2:0:0:0: [sda] Attached SCSI disk
dracut: Scanning devices sda2 for LVM logical volumes vg_centos64min/lv_root vg_centos64min/lv_swap
EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts:
SELinux: initialized (dev sda1, type ext4), uses xattr

 

顯示CPU的型號:

[root@centos-64-min ~]# cat /proc/cpuinfo | grep -i "Model"
model : 42
model name : Intel(R) Core(TM) i5-2450M CPU @ 2.50GHz
[root@centos-64-min ~]#

當然也可以不適用管道

[root@centos-64-min ~]# grep -i 'Model' /proc/cpuinfo
model : 42
model name : Intel(R) Core(TM) i5-2450M CPU @ 2.50GHz
[root@centos-64-min ~]# grep 'Model' /proc/cpuinfo
[root@centos-64-min ~]# grep 'model' /proc/cpuinfo
model : 42
model name : Intel(R) Core(TM) i5-2450M CPU @ 2.50GHz


僅僅顯示匹配到內容的文件名字

grep -l  ‘main’  *.c

或者可以強制grep以彩色輸出:

grep --color vivek  /etc/passwd

 

 

 

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • linux zip命令的基本用法是:zip [參數] [打包後的文件名] [打包的目錄路徑]linux zip命令參數列表:-a 將文件轉成ASCII模式-F 嘗試修複損壞的壓縮文件-h 顯示幫助界面-m 將文件壓縮之後,刪除源文件-n 特定字元串 不壓縮具有特定字尾字元串的文件-o 將壓縮文件內的...
  • 1.選擇路由 若要將數據包發至PC2,則linux系統通過查詢路由表可知168.1.1.10(目的地址)的網關地址為192.168.1.1,此時linux系統選擇網卡1發送數據包。2.鄰居子系統(通過arp協議建立起鄰居的信息) 選擇網卡1發送數據時,首先將數據包發給鄰居(網關),再由鄰居轉...
  • 迴環網卡驅動1.迴環網卡和普通網卡的區別是他是虛擬的不是實際的物理網卡,它相當於把普通網卡的發送端和接收端短接在一起。2.在內核源代碼里的迴環網卡程式(drivers/net/loopback.c)不是以一個模塊的形式給出,但是他的初始化(loopback_net_init)和退出函數(loopba...
  • 1) 獲取遠程主機的系統類型及開放埠nmap -sS -P0 -sV -O 這裡的 可以是單一 IP, 或主機名,或功能變數名稱,或子網-sS TCP SYN 掃描 (又稱半開放,或隱身掃描)-P0 允許你關閉 ICMP pings.-sV 打開系統版本檢測-O 嘗試識別遠程操作系統其它選項:-A 同時....
  • 本系統是10月5日最新完整版本的Windows10安裝版鏡像,win10正式版,更新了重要補丁,提升應用載入速度,微軟和百度今天宣佈達成合作,百度成為win10Edge瀏覽器中國預設主頁和搜索引擎,系統增加了搜狗輸入法,安裝過程需要用戶手動創建個人賬戶等步驟,為保證系統的穩定性,win10為未激活版...
  • ---恢復內容開始---據說淘寶的Tengine很牛X,所以我們今天也來玩玩,我們這裡是某開放雲的vps,現在已經安裝好了nginx,現在我們要平滑切換到安裝Tengine。下載Tengine,解壓進入文件夾:wget http://tengine.taobao.org/download/tengi...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...