sed awk 運維必須掌握的兩個工具

2021-08-20 04:11:50 字數 2812 閱讀 9477

今天主要跟大家介紹2個非常霸道的工具,sed和awk,本篇文章將介紹這兩個工具在日常運維中的常用用法,工作中這兩個工具要掌握好了在結合一些管道命令、正規表示式,日常處理事務簡直666啦!

l sed

1.強大的地方

擅長對資料行進行處理,sed是一種流編輯器,處理時,把當前處理的行儲存在臨時緩衝區中,稱為「模式空間」(pattern space),接著用sed命令處理緩衝區中的內容,處理完成後,把緩衝區的內容送往螢幕。接著處理下一行,這樣不斷重複,直到檔案末尾。檔案內容並沒有改變,除非你使用重定向儲存輸出。利用sed命令可以將資料行進行替換、刪除、新增、選取等特定工作。

2.用法

sed [-nefr] [動作]

選項:-n:使用安靜(silent)模式。在一般 sed 的用法中,所有來自 stdin 的資料一般都會被列出到終端上。但如果加上 -n 引數後,則只有經過sed 特殊處理的那一行或動作才會被列出來

-e :直接在命令列模式上進行 sed 的動作編輯;

-f :直接將 sed 的動作寫在乙個檔案內, -f filename 則可以執行 filename 內的 sed 動作;

-r :sed 的動作支援的是擴充套件型正規表示法的語法。(預設是基礎正規表示法語法)

-i :直接修改讀取的檔案內容,而不是輸出到螢幕

動作說明: [n1[,n2]] function

n1, n2 :不見得會存在,一般代表『選擇進行動作的行數』,舉例來說,如果我的動作是需要在 10 到 20 行之間進行的,則『 10,20[動作行為] 

function一般有以下引數:

a:新增,後面可以接字串,而這些字串會在新的一行出現(目前的下一行)

c: 替換,後面可以接字串,這些字串可以替換 n1,n2 之間的行

d:刪除

i:插入,後面可以接字串,而這些字串會在新的一行出現(目前的上一行)

p:列印,將某個選擇的資料列印出來。通常跟引數-n 一起執行

s:替換,用乙個字串替換另乙個,注意與c引數的區別

3.舉例 我們用/ etc/passwd檔案來演示,先來看看sed不加引數跟加上-n引數是怎樣的

看上圖明白選項一欄-n引數後面的解釋意思了吧,不加引數是輸出了檔案所有資訊並且多列印了第一行的資料,加上-n引數就只列印了第一行的資料,1p就是列印第一行,2p;4,10p就是列印第2行以及第4-10行啦

刪除第1-10行,留意行號變化

刪除第1行,第10行,留意行號變化

將passwd檔案中包含/sbin/nologin替換為/bin/bash並列印輸出

將passwd檔案中第2行的資料替換為test,注意到與s引數的區別了吧

在passwd檔案第二行新增test字串

在passwd檔案第二行插入test字串

刪除passwd檔案的第三行至末尾行

1.強大的地方

擅長對資料列進行處理,就是把資料逐行的讀入,以空格為預設分隔符再將每行切斷,對切斷的部分再進行分析處理。

2.用法

awk '條件型別1 條件型別2 ...' filename  選項:

-f fs:字段分隔符,fs是乙個字串或者是乙個正規表示式,如-f:

如要對資料做特殊處理,可能還會用到awk的內建變數:

變數名稱

代表意義

nf每一行($0)擁有字段總數

nr目前awk處理的第幾行

fs目前分隔符,預設是空格鍵

3.舉例

我們還是以/etc/passwd 檔案為例。以:為分隔符,列印passwd 檔案中每行使用者名稱user($1)及使用者uid($3)。補充:$0代表一整行資料的意思

列印passwd檔案中uid>=500 的使用者名稱及uid

列印passwd每一行的資料,並以:為分隔符計算每行的字元總數列印在每行資料的末尾

列印passwd檔案中以:為分隔符第三個欄位即uid>=500的資料所在行號

想想日常工作中如何要獲取檔案中第幾行第幾列的資料應該如何操作,如列印passwd檔案中第一行與最後一行第一列的資料,sed跟awk結合使用啦。

總結:關於sed跟awk日常要用到的用法就說到這裡啦,從事運維的同事一定要熟練運用這兩個工具哦,特別是需要經常做資料匯報的,能減輕很大工作量。

sed awk 運維必須掌握的兩個工具

今天主要跟大家介紹2個非常霸道的工具,sed和awk,本篇文章將介紹這兩個工具在日常運維中的常用用法,工作中這兩個工具要掌握好了在結合一些管道命令 正規表示式,日常處理事務簡直666啦!lsed 1 強大的地方 擅長對資料行進行處理,sed是一種流編輯器,處理時,把當前處理的行儲存在臨時緩衝區中,稱...

linux運維必須掌握

1 什麼是gpl,gun,自由軟體 gun 革奴計畫 目標是建立一套完全自由,開發的作業系統。自由軟體 是一種可以不受許可權自由使用,複製,研究,修改,分發的軟體。主要許可證有gpl和bsd許可證。2 如何選擇linux作業系統版本 一般,桌面使用者首選ubantu 伺服器首選rhel或centos...

Oracle體系結構前必須掌握的兩個概念

對於初學者來講,在了解oracle體系結構之前必須掌握以下兩個基本的概念 資料庫和例項。一 資料庫 資料庫 database 是乙個資料集合.無論資料庫是採用關係結構還是物件導向結構,oracle資料庫都將 其資料存放在資料檔案中.在其內部,資料庫結構資料對檔案的邏輯 對映,使不同的資料分開儲存,這...