1. 程式人生 > >文字處理三劍客 grep sed awk

文字處理三劍客 grep sed awk

一、正則表示式

      正則表示式是對字串(包括普通字元(例如,a 到 z 之間的字母)和特殊字元(稱為“元字元”))操作的一種邏輯公式,就是用事先定義好的一些特定字元、及這些特定字元的組合,組成一個“規則字串”,這個 “規則字串”用來表達對字串的一種過濾邏輯。正則表示式是一種文字模式,模式描述在搜尋文字時要匹配的一個或多個字串。可以使用grep、sed、awk命令來測試正則表示式。

二、grep 文字過濾明令

1.gaep 概念

grep 命令是一種強大的文字搜尋工具,根據使用者指定的”模式“對目標文字進行匹配檢查,列印匹配到的行。由正則表示式或者字元及基本文字字元所編寫的過濾條件

2.基本命令

用法:grep 匹配條件 處理檔案

基本命令:

grep  root   passwd         過濾出passwd中root字元


grep  ^root  passwd         以root開頭的

grep  root$  passwd         結尾

grep  -i  root  passwd      忽略大小寫過濾

grep  root  passwd  |  grep  -i  -E  "^root|root$"  -v      過濾root 在中間的行

grep -E -i "^root|root$" passwd   過濾以root開頭或結尾的行忽略大小寫

grep -E -i -v "^root|root$" passwd    過濾以root開頭或結尾以外的行忽略大小寫

3.grep 中的正則表示式

^westos  以westos開頭   westos$  以westos結尾   'w....s' 以w開頭s結尾  'w.....' 以w開頭  '.....s' 以s結尾

4.引數的介紹

-E  擴充套件正則表示式     -i 忽略大小寫      -v 反向過濾把不符合條件的遮蔽

*   字元出現 0-任意次

^
錨定行的開始 如:'^grep'匹配所有以grep開頭的行。
$
錨定行的結束 如:'grep$'匹配所有以grep結尾的行

\<
錨定單詞的開始,如:'\<grep'匹配包含以grep開頭的單詞的行。
\>
錨定單詞的結束,如'grep\>'匹配包含以grep結尾的單詞的行。

x\{m\}
重複字元x,m次,如:'o\{5\}'匹配包含5個o的行。
x\{m,\}
重複字元x,至少m次,如:'o\{5,\}'匹配至少有5個o的行。
x\{m,n\}
重複字元x,至少m次,不多於n次,如:'o\{5,10\}'匹配5--10個o的行

x\{ab\}\{m\}ab    關鍵字元出現 m 次

  .*                    關鍵字之間匹配任意字元

\+   匹配一個或多個先前的字元。

\?    匹配零個或一個先前的字元。

三、sed 行編輯器

1.sed 概述

sed 用來操作純 ASCLL 碼的文字。處理時,把當前處理的行儲存在臨時緩衝區中,稱為”模式空間“

可以指定僅僅處理哪些行。

sed 符合模式條件的處理,不符合條件的不予處理,處理完成後把緩衝區的內容送往螢幕。

2.sed 命令格式

呼叫sed 命令的兩種形式:

sed [options] 'command' file

sed [options] -f scriptfile file

3.sed 對字元的處理

n讀取下一個輸入行,用下一個命令處理新的行而不是用第一個命令。

N追加下一個輸入行到模板塊後面並在二者間嵌入一個新行,改變當前行號碼。

=列印當前行號碼

p 顯示 d 刪除  a 新增   c 替換  w 寫入   i 插入

1)p 顯示模式操作

 sed -n ' /\:/p' fastab   顯示檔案中帶 :的行     其中 \ 表示轉譯

sed -n  '/UUID$/p' fastab  顯示文中以UUID 結尾的行

sed -n  '/^UUID/p' fastab   顯示文中以UUID 開頭的行

sed -n  '2,6p' fastab         顯示文中2-6行

sed -n  '2,6!p' fastab         不顯示文中2-6行

sed -n  '3p;5p;6p'  fastab    顯示文中的3行,5行,6行

sed -n   -e '2p' -e '6p'  fastab   顯示第二行和第六行 (-e 表示多個條件)

sed -ne  '2p;6p' fastab  顯示第二行和第六行

sed -ne  '2!p;6!p' | uniq -d  fastab  顯示除了第二行和第六行以外的行

2)d 刪除模式

sed ' /^#/d' fastab   刪除檔案中以#開頭的行  

刪除fstab中不以#開頭的行

sed -e ' /^$/d' fastab   刪除空格行

sed  '/UUID$/d' fastab  刪除文中以UUID 結尾的行

sed   '/^UUID/d' fastab   刪除文中以UUID 開頭的行

刪除fstab中5-7行

刪除fstab中第5和第7行

3)a 新增模式 (在匹配行後新增)

sed '/^UUID/a\ hello' fstab   在以UUID開頭行的後面新增hello (sed要求命令a後面有一個反斜槓。)

sed '/^UUID/a\ hello\ntest' fstab   在以UUID開頭行的後面新增hello行和test 行 (\n 表示換行新增)

4)i 插入模式(在匹配行前插入)

sed '/^UUID/i\hello' fstab  在以UUID開頭行的前面插入hello (sed要求命令i後面有一個反斜槓。)

5)替換:c命令

sed '/^UUID/c\hello' fstab  在以UUID開頭行替換成hello (sed要求命令c後面有一個反斜槓。)

6)w 寫入模式

sed -n '/test/w file' example        在example中所有包含test的行都被寫入file裡。

4.sed 其他用法

1)sed -n -f prctise fstab  對fstab執行prctise 策略

2)字元替換

sed 's/nologin/ /g' passwd   將passwd全文的nologin替換成空格

sed '1,5s/nologin/ /g' passwd   將前5行的nologin替換成空格

將/daemon/至/mail/中的/nologin替換成#

3)sed '[email protected]/@#####@g' fstab   @相當於/的意思

4)G 用法

sed 'G' fstab   將fstab每行後插入空行

sed '$!G' fstab   除了最後一行,每行後插入空行

5)=

sed '=' file    顯示行號

sed -n '/^UUID/=' fstab  只顯示行數

sed '/^UUID/=' fstab   顯示行數和內容

sed '=' passwd | sed 'N;s/\n/ /g'  在檔案的行前面加行號(N追加下一個輸入行到模板塊後面並在二者間嵌入一個新行,改變當前行號碼。)

四、awk 報告生成器

1.awk 概述

awk 是一種用於處理文字的程式語言工具。awk 會逐行處理文字,支援在處理第一行之前做一些準備工作,以及在處理完最後一行做一些總結性質的工作,在命令格式上分別體現如下:

BEGIN{ }:讀入第一行文字之前執行,一般用來初始化操作

{ } :逐行處理,逐行讀入文字執行相應的處理,是最常見的編輯指令塊

END:處理完最後一行文字之後執行,一般用來輸出處理結果

2.awk 基本用法 (linux 上預設使用gawk)

1)awk -F : 'BEGIN{print "name:"}{print $1}'  passwd

在passwd文字中以:為分隔符,處理前列印name,列印第一列

2)awk -F : 'BEGIN{print "name:"}{print $1}'END{print NR}'  passwd

在passwd文字中以:為分隔符,處理前列印name,列印第一列,處理完成後列印行數

(NR 行  NF 列)

3)awk -F : '/bash$/{print $1}' /etc/passwd             以bash結尾的使用者

4)awk -F : '/bash$/||/sh$/{print $1}' /etc/passwd    以bash 或者以 sh 結尾的使用者

5)awk -F : 'NR==3' passwd  以:為分隔符,列印第三列

6)awk 'BEGIN{N=0}{N++}END{print N}' passwd  從零開始統計行數

7)awk '/^a|nologin$/{print}'  /etc/passwd  列印以a 開頭或者以nologin 結尾的行

8)awk -F : '$6~/\<bin\>/{print}' passwd   列印第六個欄位為 bin的行 (即使用者家目錄為bin的行)

9) awk -F : '$6!~/\<bin\>/{print}' passwd  列印第六個欄位不為 bin的行

3.awk 測試

抓取eth0網絡卡的ip

統計在系統中可以登陸系統的使用者

相關推薦

文字處理三劍客 grep sed awk

一、正則表示式       正則表示式是對字串(包括普通字元(例如,a 到 z 之間的字母)和特殊字元(稱為“元字元”))操作的一種邏輯公式,就是用事先定義好的一些特定字元、及這些特定字元的組合,組成一個“規則字串”,這個 “規則字串”用來表達對字串的一種過濾邏輯。正則表示

SHELL文字處理三劍客sedgrepawk

一、grep文字過濾器 1. 基本介紹 Global search regular expression and print out theline 全面搜尋研究正則表示式並顯示出來 grep命令是一種強大的文字搜尋工具根據使用者指定的

02-shell文字處理三劍客sed

sed 是流編輯器,但是它不會修改原始檔。 sed (流文字編輯器) 用法:sed OPTIONS… [SCRIPT] [INPUTFILE…] -r: 使用擴充套件的正則表示式; -n, –quiet, –silent: 不輸出模式空間的內容; -i:直接編輯原檔案; -

4.shell程式設計-文字處理三劍客sed

4.1.sed的選項  sed,流編輯器。對標準輸出或檔案進行逐行處理。 語法格式 第一種:stdout | sed [option] "pattern command" 第二種:sed [option] "pattern command" file  選項 -n&

Linux文字處理三劍客awksedgrep入門

AWK命令簡介 AWK是一門解釋型的程式語言,它的名字來源於它的三位作者的姓氏:Alfred Aho,Peter Weinberger和Brian Kernighan。AWK能夠應用於廣泛的計算和資料處理任務。所有的GNU/Linux發行版都自帶GAWK,即GNU AWK,

運維之路-文字處理-三劍客grepsedawk

轉載:https://blog.csdn.net/zisefeizhu/article/details/82526749 目錄  grep 支援的正則 描述 輸出控制 描述 內容行控制 描述 示例: sed Usage: 命令 描述 地址 描述 匹配刪除(d)  替

shell文字處理三劍客(awk sed grep)

一.grep:文字過濾器 根據正則表示式來工作,由正則表示式或者字元及基本的文字字元所編寫的過濾條件 tr 'a-z' 'A-Z' < file          ###把passwd中的小寫轉換為大寫 ^x      ###以x開頭的 x$      ###以

Linux文本處理三劍客(grepsedawk)

文本處理三劍客grepsedawkLinux文本處理三劍客(grep,sed,awk)

文字處理工具 grep awk sed完全解讀

文字處理工具 grep awk sed完全解讀 正則表示式單字元 1特定字元 : 某個具體的字元 'a' 2範圍內字元 : [a-zA-Z] 3任意字元 : . // grep . file // 如果點放到中括號中[.] 或者用反斜槓'\.' 則它不代表任意一個字元,而代表它本身 例如 grep '

shell中的文字處理grepsedawk命令)

grep    文字過濾命令sed    行編輯器awk    報告生成器一、grep命令    全面搜尋研究正則表示式並顯示出來grep 命令是一種強大的文字搜尋工具 , 根據使用者指定的“模式”對目標文字進行匹配檢查 , 列印匹配到的行    由正則表示式或者字元及基本文

三個支持正則表達式的行處理的工具: grep/sed/awk

刪除 全局替換 display nds 裏的 控制 streams 入行 arch grep: 全稱Global Regular Expression Print, 是幹什麽的,不多說了; 用法:grep 【-options] [pattern】 【filename] 選項

Linux的命令及三劍客grep sed awk

txt 當前 修改 刪除 root alex bak 過濾 dbo 令的介紹1.1 mv 修改兼移動命令1.1.1 移動命令mv 1.1.2 修改命令mv[root@oldboy ~]# mv oldboy.txt oldgirl.txtmv: cannot stat

linux三大文件處理工具(grep/sed/awk

i++ 數據 test font 文件名 span 工具 tro clas grep, sed 與 awk 是linux三個很強大的文件處理工具。 gerp 查找, sed 編輯, awk 根據內容分析並處理。 現在我們去了解一下這三種文件處理工具有什麽不同(肯定不同了,要

01-shell文字處理三劍客grep

開篇:哈嘍,今天我想寫寫shell程式設計,打算平均一天一篇吧,這樣一個月後就可以進步比較多。 先從shell文字處理三劍客grep、sed、awk開始。聽說啊,要是我不會這個命令,就不好意思說自己會shell程式設計。 1 grep是什麼意思? grep: Global se

文字處理三劍客grep

grep:根據使用者指定的“模式”對目標文字進行匹配檢查,列印匹配到的行 模式:用正則表示式字元所編寫的過濾條件 grep [option] pattern [file...] --color=auto:對匹配到的文字著色顯示 -v:顯示不能夠被pattern匹配到的行 -

linux 三劍客命令(grep,sed ,awk)

LINUX三劍客特長  grep更適合單純的查詢或匹配文字 grep ‘pattern’ input-file…  sed更適合編輯匹配到的文字 sed [option] ‘AddressCommand’ file…  awk更適合格式化文字,對文字進行較複雜格式處理

文字處理grepsed)、正則表示式、vim基礎

文字處理三劍客:(grep、sed)                 grep命令:Global search REgular expression and Print out t

文字處理三劍客AWK

AWK簡介    AWK是一件上古神器,用這句話來形容AWK是最貼切不過了。    縱觀計算機發展的歷史,我們發現,awk幾乎是伴隨著計算機作業系統的發展一路走來。1970年作為計算機計時元年,誕生了UNIX和C語言這兩種偉大的事物。在

Shell程式設計5_文字處理三劍客(awk)

文字處理三劍客(awk) 1.awk介紹 AWK:三位創造者Aho、Weinberger和Kernighan統稱 官方定義:一個優秀的樣式掃描與處理工具 定位:AWK是一種用於處理文字的程式語言工具,主要用於格式化報文或從一個大的文字檔案中抽取資

Linux進階篇--文字處理三劍客AWK

Linux進階篇–文字處理三劍客之AWK 本章概要 awk介紹 awk基本用法 awk變數 awk格式化 awk操作符 awk條件判斷 awk迴圈 awk陣列 awk函式 呼叫系統命令 一、 awk介紹 awk:Aho, Weinberger, Kerni