sed、awk——運維必須掌握的兩個工具
今天主要跟大家介紹2個非常霸道的工具,sed和awk,本篇文章將介紹這兩個工具在日常運維中的常用用法,工作中這兩個工具要掌握好了在結合一些管道命令、正規表示式,日常處理事務簡直666啦!
l Sed
1.強大的地方
擅長對資料行進行處理,sed是一種流編輯器,處理時,把當前處理的行儲存在臨時緩衝區中,稱為“模式空間”(pattern space),接著用sed命令處理緩衝區中的內容,處理完成後,把緩衝區的內容送往螢幕。接著處理下一行,這樣不斷重複,直到檔案末尾。檔案內容並沒有改變,除非你使用重定向儲存輸出。利用sed命令可以將資料行進行替換、刪除、新增、選取等特定工作。
動作說明: [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檔案的第三行至末尾行
l Awk
1.強大的地方
擅長對資料列進行處理,就是把資料逐行的讀入,以空格為預設分隔符再將每行切斷,對切斷的部分再進行分析處理。
3.舉例
我們還是以/etc/passwd 檔案為例。以:為分隔符,列印passwd 檔案中每行使用者名稱稱user($1)及使用者uid($3)。補充:$0代表一整行資料的意思
列印passwd檔案中uid>=500 的使用者名稱稱及UID
列印passwd每一行的資料,並以:為分隔符計算每行的字元總數列印在每行資料的末尾
列印passwd檔案中以:為分隔符第三個欄位即UID>=500的資料所在行號
想想日常工作中如何要獲取檔案中第幾行第幾列的資料應該如何操作,如列印passwd檔案中第一行與最後一行第一列的資料,sed跟awk結合使用啦。
總結:關於sed跟awk日常要用到的用法就說到這裡啦,從事運維的同事一定要熟練運用這兩個工具哦,特別是需要經常做資料彙報的,能減輕很大工作量。
公眾號推薦:
相關文章
- 入門Linux運維工程師,必須要掌握的10個技術點Linux運維工程師
- 雲端計算到底是個啥?運維必須掌握雲端計算的理由是什麼?運維
- 必須掌握的10個Linux命令!Linux
- mysql 必須掌握的工具pt-query-digestMySql
- 10 個你必須掌握的超酷 VI 命令技巧
- Git中~你必須掌握的!Git
- Java Annotation 必須掌握的特性Java
- 程式設計師生存指南:你必須要掌握的兩點!程式設計師
- 未來兩年你必須掌握的五種程式語言
- Linux運維工程師入門須掌握的10個技術點Linux運維工程師
- 掌握運維必備技能--問題故障定位運維
- 初級運維必備掌握面試題目運維面試題
- PMD外掛:你必須掌握的程式碼質量工具!
- Linux 文字處理工具(grep sed awk )Linux
- 24個必須掌握的資料庫面試問題~資料庫面試
- JavaScript大師必須掌握的12個知識點JavaScript
- PHP初學者必須掌握的10個知識點PHP
- CSS中那些必須掌握的概念CSS
- 前端必須掌握的知識點前端
- 9個必須掌握的Javascript處理陣列的方法JavaScript陣列
- 兩道shell指令碼的程式設計題(sed與awk)指令碼程式設計
- 運營人必須掌握的分析模型!帕累託模型詳解模型
- 每一個資料分析師都必須掌握的方法:多維度分析法
- java開發必須要掌握的20個核心技術Java
- 10個必須掌握的PHP關聯陣列使用技巧PHP陣列
- Java程式設計師必須掌握的5個註解!Java程式設計師
- 程式設計師必須掌握的五個seo知識程式設計師
- 帕累託模型有多實用?運營人必須掌握!模型
- 學習Linux必須掌握的命令!Linux
- git 必須要熟練掌握的命令Git
- 你必須知道的python運維常用指令碼!(日常更新)Python運維指令碼
- 總結10個Linux安全運維必備的實用工具!Linux運維
- [linux]sed與awkLinux
- awk sed 用法詳解
- Web 開發必須掌握的三個技術:Token、Cookie、SessionWebCookieSession
- 牛逼程式設計師必須要掌握金字塔思維程式設計師
- 關於二叉樹的幾個必須掌握的實現二叉樹
- 《sed & awk》讀書筆記之 awk 篇筆記