文字處理工具grep sed awk

2021-10-11 23:48:14 字數 3399 閱讀 6470

均在模式空間中處理,不改原檔案

grep:globally search a re gular expression and print

grep

grep -e = egrep

1.grep格式

grep 匹配條件 處理檔案

grep root passwd

過濾root關鍵字

grep ^root passwd

以root開頭

grep root$ passwd

以root結尾

grep -i root passwd

忽略大小寫

grep -e 「root字元之前不能有字元

grep -e 「root>」 passwd

root字元之後不能有字元

grep -數字

顯示過濾行以及上下各幾行

grep -n

顯示匹配的行所在行號

grep -a

顯示過濾行以及下面幾行

grep -b

顯示過濾行以及上面幾行

grep -v

反向過濾

grep字元數量匹配規則

^westos

以westos開始

westos$

以westos結尾

w…sw開頭,s結尾,中間任意4個任意字元

…ss結尾,前面5個任意字元

*字元出現任意?+

0到1次

n次m到n次

0到n次

0到n次

最少m次

(lee)

lee字串出現2次

練習指令碼:

請顯示系統中能被su命令切換的使用者名稱

命令格式:

sed 引數 命令 處理物件

sed 引數 處理物件 -f 處理規則檔案

對字元的處理p顯示

sed 5p westos

顯示第5行

sed -n 3,5p westos

顯示3到5行

sed -ne 「3p;5p」

顯示3和5行

sed -ne 1,5p westos

1-5行

sed -ne 『5,$p』 westos

5到最後行

sed -n 『/^#/p』 fstab

顯示以#開頭的行 d

刪除sed 5d westos

刪除第5行

sed 『/^#/d』 fstab

把#開頭的行刪除

sed 『/^uuid/!d』 fstab

除了uuid以外的行都刪除

sed -e 『5,$d』 westos a

新增sed -e 『$a hello world』 fstab

sed -e 『$a hello\nworld』 fstab

sed -e 『/^#/a hello world』 fstab

sed '1,5ahello westos' passwd	#把1到5行新增到passwd中
注:若要新增1和5行,不能直接1-5,只能使用兩條命令

c替換整行

sed -e 『/^#/c hello world』 fstab

sed 『5chello world』 westos

sed '/sbin/chellowestos' passwd	#替換所有包含sbin的行為hello westos

w把符合的行寫到指定檔案中

sed 『/^uuid/w westosfile』 westos

把westos中uuid開頭的行寫入westosfile中

i 插入在上面,a新增在下面

sed '5ihello westos' westos
r #整合檔案

sed '5r hah' westos
sed|字元替換

sed 's/:/###/g' westos

sed 's/:/###/' westos

sed 's/:/###/g' westos

sed '1,5s/:/###/g' westos

sed '1s/:/###/g' westos

sed '1s/:/###/g;5s/:/###/g' westos

sed '/lp/,/shutdown/s/:/###/g' westos

sed 's/\//####/g' westos

sed 's@/@####@g' westos

sed 's@/@####@g' -i westos #把sed處理的內容儲存到westos檔案中

練習:apache_port.sh指令碼後接數字,http的埠就改為此數字,假設selinux為關閉狀態

補充:

sed '=' passwd		#在每一行上面標註行號

sed '$=' passwd #在最後一行前標註行號

sed -n '$=' passwd #只顯示最後一行的行號

awk -f 分隔副 begin{}{}end{} filename

引數解釋

nr行數

nf列數

filename

檔名稱本身

westos

westos變數值

「westos」

westos字串

/bash$/

條件/條件1

條件2/

/條件1/

/條件1/&&/條件2/

條件1並且條件2

$0所有的列

$1第一列

$2第二列

$3第三列

#/etc/passwd檔案的第六列沒有home關鍵字並且以bash結尾的行

awk -f : 『katex parse error: expected 'eof', got '&' at position 10: 6!~/home/&̲&/bash/』 /etc/passwd

Linux文字處理工具(grep sed awk)

文字處理 說明grep c str tmp test 列印符合要求的行的數目。grep i str tmp test 輸出符合要求的行,忽略str大小寫。grep n str tmp test 輸出符合要求的行及行號。grep v str tmp test 輸出不符合要求的行。grep a2 str...

文字處理工具

參考 man,info,magedu講義 宣告 以下英文純屬個人翻譯,英文b級,歡迎糾正,以下內容純屬個人理解,並沒有對錯,只是參考,盜版不糾,才能有限,希望不誤人子弟為好。these commands read and write entire files,possibly transformin...

文字處理工具

linux 上文字處理三劍客 grep 文字過濾工具 模式 pattern awk linux上的實現為gwak 文字報告生成器 格式化文字 正規表示式 regual expression regexp 由一類特殊字元及文字所編寫的模式,其中有些字元表示其字面意義,grep options colo...