shell三劍客之sed!

2022-01-08 檸檬班軟體測試

sed(Stream Editor 流編輯器),作為三劍客的一份子,主要的功能有增刪改查。

為什麼稱之為「流」編輯器呢?

大家知道:在Linux文件系統中,一切都可以作為文件來處理。

比如:配置文件、設備文件、日誌等等。

sed就類似於工廠流水線作業的車間一樣,文件中的每行內容都是生產元件,經過sed車間流水線處理,最終會變成成品。

同grep一樣,sed提供兩種方式:

◆ stdout | sed [option] 「pattern command」

◆ sed [option] 「pattern command」 file

第一種是從文本中直接使用pattern匹配搜索


第二種是從標準輸出中處理


選項


pattern匹配模式


sed命令-增加&刪除

練習:

單行插入

多行插入

刪除內容


sed命令-修改

◆ 「#」作為定界符,「/」也可以作為定界符,當替換內容有包含定界符時,需要進行轉義

◆ 如果要修改文件內容,需要加「-i」參數

練習:


修改文件內容,不對源文件起效

修改源文件內容

修改文件指定行對應的內容


sed分組替換功能

正則表達式中的分組功能sed也是可以支持的,用()記住正則表達式的一部分,其中,\1為第一個小括號裡面的內容,如果還有其他的下括號,那麼\2即可第二個,以此類推...,最多記住9個。


實例: I am yy teacher.這串文本想要保留yy,刪除剩餘的部分

給配置文件中某一項配置加注釋


sed命令-查詢

查詢相比較是最簡單的,sed中的查詢相比cat、more命令可以更加精細。

例如:


查詢文件第二行內容(p即表示查詢)

查詢文件1-10行

注意:p查詢命令需要和-n參數結合一起使用,如果不使用-n 會輸出原來行內容及匹配行的內容,-n表示取消原來行輸出

用sed取出Linux網卡eth0的IP位址

將/etc/passwd文件中非單詞字符替換成空格


問題?使用單引號or雙引號區別?

◆ 雙引號把雙引號的內容輸出出來;如果內容中有命令,變量等,會先把命令,變量解析出結果,然後再輸出最終內容來。雙引號內命令或變量的寫法為命令或變量或$(命令或變量)。

◆ 單引號所見即所得,將單引號內的內容原樣輸出,阻止所有字符的轉義。

本文由檸檬班歪歪原創,轉載需註明出處!


轉發到朋友圈是最高的讚賞

關注檸檬班微信公眾號

領取100G軟體測試資料

讓軟體測試學習變得更簡單!



相關焦點

  • shell腳本三劍客--grep、awk、sed
    shell腳本–正則表達式前言正則表達式概述和用途正則表達式又稱正規表達式、常規表達式。在代碼中常簡寫為 regex、regexp 或 RE。正則表達式是使用單個字符串來描述、匹配一系列符合某個句法規則的字符串,簡單來說, 是一種匹配字符串的方法,通過一些特殊符號,實現快速查找、刪除、替換某個特定字符串。
  • shell三劍客:(一)sed的基礎用法
    目錄一、sed的基礎知識1.1 sed常用參數1.2 sed工作原理1.3 sed使用格式二、sed的基本命令2.1 添加(a,i)2.1.1 在指定行後添加2.1.2 在指定行前插入2.2 刪除(d)2.2.1 刪除qqcy文件最後一行2.2.2 刪除qqcy文件中的第二行到最後一行2.3 替換(c,s)2.3.1  整行替換2.3.2  簡單替換2.3.3 多重替換2.3.4 指定替換
  • Linux shell腳本編程入門系列七:linux三劍客之awk
    由於其強大的文本分析能力與格式化輸出能力,awk命令成為Linux環境開發者的必備殺器,與grep命令、sed命令一起被稱為Linux三劍客。熟練運用awk命令能讓我們的日常工作變得高端同時也高效起來。2、awk的基本使用awk對文本的掃描是以行為單位的,也就是說awk一次從文本中讀取一行的內容。
  • Linux 三劍客 Awk、Sed、Grep 命令詳解
    Linux三劍客Awk命令詳解命令名稱Awk  pattern scanning and processing language命令作用對文本和數據進行處理awk有很多內建的功能,比如數組、函數等,這是它和C語言的相同之處,靈活性是awk最大的優勢。
  • 一篇文章學會shell工具篇之sed
    sed工具執行原理; 有關sed的參數及action的常見操作方法; 定址; 模式空間和保持空間; 使用標籤 1.首先先來了解一下什麼是sed?
  • linux文本處理三劍客之sed增刪改查
    「sed(stream editor, 流編輯器)是linux下非常強大的非交互式的文本編輯器,主要功能是對文本的每一行數據進行匹配後操作,比如按行、按欄位
  • Shell—正則表達式(grep命令、sed工具)
    執行: 默認情況下,所有的sed命令都在模式空間中順序地執行,除非指定了行的地址,否則sed命令將會在所有的行上依次執行。sed命令常見用法sed [選項] 『操作』 參數sed [選項] -f scriptfile 參數常見的sed命令選項-f scriptfile: 指定的文件中是sed編輯命令-n、–quiet或silent:表示僅顯示處理後的結果。
  • Shell 助力開發效率提升
    (其實之前這篇文章Mac 軟體推薦(續)之程序猿篇也大致提到了本文中的大部分內容)通過本文的介紹, 你應該對相關命令有一個初步的了解, 知道比如用什麼命令可以完成怎樣的操作,至於具體的參數, 你不用去刻意地記, 等到你用到的時候, 你再去 cmd --help 或者 man cmd去看, 用熟悉了, 常用的你也就記住了.
  • shell三劍客:(二)awk的基礎用法
    與sed 和grep 相似,但功能卻超過兩者,之所以叫awk是因為其取了三位創始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的Family Name的首字符。awk指令與sed指令結構相同,都由模式和過程兩部分組成,但過程本身不同。awk為每個輸入行執行一套指令,也可以在命令行上指定指令或創建腳本文件,看上去更像一種程序設計語言。
  • Shell常用命令,太全了,建議收藏
    強制退出Kjhl 上下左右i 進入插入模式, r 進入替代模式A 到行尾並Append,a 進入Append輸入模式O 在本行上新增一行o在本行下新增一行:%d 刪除所有文本:sh 執行外部shell:389 跳到389行, :1 跳至文件頭 shift+g,跳至頁尾
  • Linux常用命令 - sed
    sed 是一個流編輯器。它可以對文件和輸入流(如管道)執行基本的文本操作。使用 sed,您可以搜索、查找和替換、插入和刪除單詞和行。 它支持基本的和擴展的正則表達式,允許您匹配複雜的模式。接下來, 我將使用 sed 查找和替換字符串。我還將向您展示如何執行遞歸搜索和替換。查找和替換字符串sedsed 有幾個版本,它們之間有一些函數上的差異。
  • SHELL腳本必知必會
    比如下面的兩個sed命令:sed -n '1p' filesed -n '1p;1q' file他們的作用一樣,都是獲取文件的第一行。但是第一條命令會讀取整個文件,而第二條命令只讀取第一行。-name '*.txt' |xargs sed -i s/233/666/gfind . -name '*.txt' |xargs sed -i s/235/626/gfind . -name '*.txt' |xargs sed -i s/333/616/gfind .
  • 詳解Linux命令--sed語法和實例講解
    概述sed命令是一個面向字符流的非交互式編輯器,也就是說sed不允許用戶與它進行交互操作。sed是按行來處理文本內容的。在shell中,使用sed來批量修改文本內容是非常方便的。sed命令的選項語法:sed [選項] [動作]選項與參數:
  • Linux 三劍客
    sed只是對緩衝區中原始文件的副本進行編輯,並不編輯原始的文件,如果需要保存改動內容,sed option 'script' file1 file2 ...sed option -f scriptfile file1 file2 ...--version            顯示sed版本。
  • 海量數據處理之cut、awk、sed命令詳解,數據分析必備技能,不難
    2.awk命令,自由控制行列,且很容易awk一個非常強大的數據處理命令,支持條件判斷,數組,循環等功能,與grep,sed被稱為linux三劍客。awk通常對數據進行列的提取,它先一行一行的按行讀取數據,然後再按列提取數據。
  • 編寫Linux Shell腳本的最佳實踐
    -name '*.txt' |xargs sed -i s/233/666/g find . -name '*.txt' |xargs sed -i s/235/626/g find . -name '*.txt' |xargs sed -i s/333/616/g find .
  • linux三劍客之awk,linux必學的強大工具!
  • shell實現鹼基/胺基酸序列提取(sed,grep,awk三大利器走向天下)
    假定存在file.fa文件,其序列如下所示:現在有四個任務,分別如下所示:任務一:提取包含「RBFOX1」字符的序列第一步:sed -i '/>/i\@' file.fafile.fa指的是包含所有序列的文件
  • Linux三大劍客之sed(上)
    3.2 命令行選項完整格式調用sed:sed OPTIONS... [SCRIPT] [INPUTFILE...]sed可能被以下命令行選項調用: --version:列印版本信息。--help:列印簡要幫助信息並退出。
  • 編寫可靠Linux shell腳本的八個建議
    帶上shellcheck好了,現在我已經有了三行(樣板)代碼,具體的業務邏輯一行都沒寫呢。是不是該開始寫了?且慢!工欲善其事,必先利其器。這次,我就介紹一個 shell 腳本編寫神器:shellcheck說來慚愧,雖然寫了幾年 shell 腳本,有些語法我還是記不清楚。這時候就要依仗 shellcheck 指點一下了。