文字處理三劍客 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文字處理三劍客(sed、grep、awk)
一、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文字處理三劍客awk、sed、grep入門
AWK命令簡介 AWK是一門解釋型的程式語言,它的名字來源於它的三位作者的姓氏:Alfred Aho,Peter Weinberger和Brian Kernighan。AWK能夠應用於廣泛的計算和資料處理任務。所有的GNU/Linux發行版都自帶GAWK,即GNU AWK,
運維之路-文字處理-三劍客(grep、sed、awk)
轉載: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文本處理三劍客(grep,sed,awk)
文本處理三劍客grepsedawkLinux文本處理三劍客(grep,sed,awk)
文字處理工具 grep awk sed完全解讀
文字處理工具 grep awk sed完全解讀 正則表示式單字元 1特定字元 : 某個具體的字元 'a' 2範圍內字元 : [a-zA-Z] 3任意字元 : . // grep . file // 如果點放到中括號中[.] 或者用反斜槓'\.' 則它不代表任意一個字元,而代表它本身 例如 grep '
shell中的文字處理(grep,sed,awk命令)
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更適合格式化文字,對文字進行較複雜格式處理
文字處理(grep、sed)、正則表示式、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