Linux三劍客之sed awk

2022-07-27 20:30:24 字數 1512 閱讀 5309

sed

流編輯器,一次處理一行內容

命令形式:

- h 顯示幫助

- n 僅顯示script處理後的結果

- e以選項中指定的script來處理輸入的文字檔案

- f以選項中指定的script檔案來處理輸入的文字檔案

常用動作

a:新增 sed - e '2 a newline' 在第2行後面新增一行

c:取代 sed -e '3,5 c newline' test.txt   取代第3行至第5行的內容

d:刪除  sed -e '2,3 d' test.txt 刪除第2至第3行的內容

i:插入 sed -e '2,3 i newline' test.txt  在第2至第5行前面插入一行內容

p:列印 sed -n '/root/p' test.txt  將test.txt檔案中所有的root列印出來

s:取代 sed -e 's/root/writer/g' test.txt 將所有的root取代為writer/全域性替換

使用cat命令查詢 test.txt檔案中資料並沒有改變,是因為 sed有乙個模式空間的概念,因此加引數-i可以修改成功!但是不要和上面的sed -e '2 i newline'中的i混了!

檢視幫助:

man sed

sed -h

sed與grep的區別

grep不可以像sed一樣新增、刪除、插入等操作,只能替換,因此sed看上去要比grep更高階一些 

awk

把檔案逐行讀入,以空格為預設分隔符將每行切片,切開的部分再進行後續處理

filename:awk瀏覽的檔名

begin :處理文字之前要執行的操作

end :處理文字之後要執行的操作

fs :設定輸入域分隔符,等價於命令列 -f選項

nf:瀏覽記錄的域的個數(列數)

nr:已讀的記錄數(行數)

ofs:輸出域分隔符

ors:輸出記錄分隔符

rs:控制記錄分隔符

$0:整條記錄

$1:表示當前的第乙個域.....依次類推

awk -f : '/home/' /etc/passwd 這裡要注意空格 

awk -f : 'nr==2' /etc/passwd

1.awk 'begin nr==2' /etc/passwd 在passwd檔案的第二行的第

一、第二列加入標題

2.echo '123|456|789'|awk 'begin'   rs="|",一定是加的雙引號,單引號會報錯,rs不要和nr混淆了,nr== 是雙等號rs= 等號

linux 三劍客之 grep

grep 是 linux系統中最重要的命令之一 其功能是從文字或者管道資料中篩選匹配的行及資料 如果配置正規表示式技術一起使用,則其功能更強大,它是linux運維人員必須要掌握的命令之一 usage grep option pattern file 用法 grep 引數 要搜尋的內容 檔案 eg r...

linux 三劍客之 awk

awk是一種程式語言,用於在linux unix下對文字和資料進行處理。資料可以來自標準輸入 stdin 乙個或多個檔案,或其它命令的輸出。它支援使用者自定義函式和動態正規表示式等先進功能,是linux unix下的乙個強大程式設計工具。它在命令列中使用,但更多是作為指令碼來使用。awk有很多內建的...

Linux三劍客之grep

1.用途 linux grep命令是用於查詢檔案裡符合條件的字串 2.語法 grep 選項 搜尋的字串 檔案 3.常見的選項 e 開啟擴充套件 extend 的正規表示式。i 忽略大小寫 ignore case v 反過來 invert 只列印沒有匹配的,而匹配的反而不列印。n 顯示行號 w 被匹配...