Linux三大劍客之sed(上)

2021-01-12 GeekDevOps

3.2 命令行選項

完整格式調用sed:

sed OPTIONS... [SCRIPT] [INPUTFILE...]sed可能被以下命令行選項調用: --version:列印版本信息。

--help:列印簡要幫助信息並退出。

-n、--quiet、--silent:只輸出明確處理過的內容。

-e script 、--expression=script:指定腳本。

-f script-file、--file=script-file:指定腳本文件。

-i[SUFFIX]、--in-place[=SUFFIX]:在原文件上修改並取代原文件。這一選項暗含-s。

-l N、--line-length=N:指定「l」命令的換行期望長度。長度為0則意味著不含長換行。如果不指定,則換行長度為70。

--posix:GUN sed包含了幾個擴展POSIX sed。為了簡化書寫這些便攜腳本,這個選項禁用了這個手冊所有的擴展以及附加命令。擴展中被POSIX執行的外部語法大部分接受sed程序,但是以上這些中的一些(例如在報告bug中的N命令描述的行為)事實上違反了標準。如果你需要禁用後期的擴展,你可以設置POSIXLY_CORRECT 變量為以非空值。

-b、--binary:這個選項在每個平臺都是可用的,僅僅在作業系統中區分文本文件與二進位文件起到作用。

--follow-symlinks:這個選項僅在支持符號連接且對選項-i被指定有影響的情況下可用。在這種情況下,如果被指定文件在命令行中是一個符號連接,sed將跟隨連接並編輯連接的最終目標文件。默認行為是中斷符號連接,因此連接目標將不被修改。

-E、-r:擴展正則表達式。

-s、--separate:在上文中已經舉過例子,當處理多個輸入文件,一般會被合併成一個文件來處理。使用這個選項則可以讓sed把各個文件分開單獨處理。

--sandbox:沙盒,在沙盒模式,e/w/r命令被拒絕-如果程序包含它們則還沒運行時它們將丟棄。沙盒模式確保了sed在輸入文件上的操作運行在指定的命令行上,而不能運行在外部命令上。

-u、--unbuffered:從輸入文件讀取最少的數據,更頻繁的刷新輸出。這將特別有用,特別像在tail -f這種情況下,能夠讓我們儘快地看出輸出結果。

-z、--null-data、--zero-terminated:把輸出看作一個一個被0位元組(如:ASCII中的「NULL」)的中斷符代替新行的集合。這個選項常和「sort -z」和「find -print0」一起使用。

3.3退出狀態

0:成功結束。

1:無效命令、無效語法、無效正則表達式、無效的帶--posix的sed擴展命令

2:一個或多個被指定的輸入文件不能在命令行中被打開。

4:I/O錯誤或運行時一個嚴重進程錯誤,GUN sed 被立即終止。

相關焦點

  • Linux常用命令 - sed
    sed 是一個流編輯器。它可以對文件和輸入流(如管道)執行基本的文本操作。使用 sed,您可以搜索、查找和替換、插入和刪除單詞和行。 它支持基本的和擴展的正則表達式,允許您匹配複雜的模式。接下來, 我將使用 sed 查找和替換字符串。我還將向您展示如何執行遞歸搜索和替換。查找和替換字符串sedsed 有幾個版本,它們之間有一些函數上的差異。
  • Linux 三劍客 Awk、Sed、Grep 命令詳解
    awk有很多內建的功能,比如數組、函數等,這是它和C語言的相同之處,靈活性是awk最大的優勢。8  redhatsed -e '2,6d' -e 's/linux centos6.8/Linux Centos6.8/' testthis is a test fileLinux Centos6.8redhat#如果兩條命令功能一樣,那麼就需要用到下面的參數sed --expression='s/linux centos6.8
  • Linux必知必會sed命令教程
    目錄:介紹工作原理正則表達式基本語法數字定址和正則定址基本子命令實戰練習介紹 熟悉 Linux 的同學一定知道大名鼎鼎的 Linux 三劍客,它們是 grep、awk、sed,我們今天要聊的主角就是 sed。
  • linux文本截取與處理之cut
    前面說了awk和sed,自然少不了要說說cut
  • Linux 上 12 個高效的文本過濾命令
    過濾器是一個程序,它從標準輸入讀取數據,在數據上執行操作,然後把結果寫到標準輸出。因此,它可以用來以強大的方式處理信息,例如重新結構化輸出以生成有用的報告,修改文件裡面的文本,以及其他很多系統管理任務。下面是 Linux 上的一些有用的文件或者文本過濾器。
  • 海量數據處理之cut、awk、sed命令詳解,數據分析必備技能,不難
    :' -f 1-3/etc/passwd例3:以 ':' 為分隔符,截取出/etc/passwd的第二列到最後一列cut -d ':' -f 2- /etc/passwd例4:截取/etc/passwd文件從第二個字符到第九個字符cut -c 2-9 /etc/passwd例5:比如領導想叫你截取linux
  • 面試題linux命令之awk
    無論是在測試還是開發崗位的面試招聘中,都會被提問到:是否了解linux系統,經常使用linux命令有哪些,接著可能會出一道題目,找出下列文本中的哪些值
  • Linux學習教程-Linux下文件內容操作
    SOX2>OCT4>NANOG>mYC HAHA# 獲取包含>的行的行數 (-c: count lines)ct@ehbio:~/ehbio_project$ grep -c '>' ehbio.fa4# 是不是還記得當時新建文件時,末尾多了一行end,刪除end所在行ct@ehbio:~/ehbio_project$ less ehbio.fa # -v: 不輸出匹配上的行
  • 如何使用Linux sed命令進行字符串替換
    Linux中sed命令功能強大,本文將詳細介紹如何使用sed命令進行字符串替換。一、基本的替換命令格式1:sed 's/原字符串/新字符串/' 文件命令格式2:sed 's/原字符串/新字符串/g' 文件這兩種命令格式的區別在於是否有個「g」。沒有「g」表示只替換第一個匹配到的字符串,有「g」表示替換所有能匹配到的字符串,「g」可以認為是「global」(全局的)的縮寫,沒有「全局的」結尾就不要替換全部,這樣就好記啦。
  • 【Linux】常用命令之 awk 常用實例
    **awk從輸入文件或者標準輸入中讀入信息,與sed一樣,信息的讀入也是逐行讀取的。不同的是,awk命令將文本文件中的一行視為一個記錄,而將一行中的某一部分(列)作為記錄的一個欄位。為了操作這些不同的欄位(列),awk借用shell中類似於位置變量的方法,用$1、$2…$9順序的表示不同列,$0表示整行。不同欄位與不同欄位可以通過指定的方式進行分隔,awk默認的分隔符是空格。
  • 軟體測試基礎之linux常用命令
    它除了在伺服器方面保持著強勁的發展勢頭以外,在個人電腦、嵌入式系統上都有著長足的進步。使用者不僅可以直觀地獲取該作業系統的實現機制,而且可以根據自身的需要來修改完善Linux,使其最大化地適應用戶的需要。Linux不僅系統性能穩定,而且是開源軟體。其核心防火牆組件性能高效、配置簡單,保證了系統的安全。
  • 上古神器 sed 教程詳解,小白也能看的懂
    目錄:介紹工作原理正則表達式基本語法數字定址和正則定址基本子命令實戰練習介紹 熟悉 Linux 的同學一定知道大名鼎鼎的 Linux 三劍客,它們是 grep、awk、sed,我們今天要聊的主角就是 sed。
  • 史上最全的 Linux Shell 文本處理工具集錦,快收藏!
    、awk;對shell腳本使用的原則是命令單行書寫,儘量不要超過2行;如果有更為複雜的任務需求,還是考慮python吧;我把 linux 相關的文章整理成了 PDF,關注公眾號 Java後端 並回復 666 下載。
  • 一篇文章學會shell工具篇之sed
    sed工具執行原理; 有關sed的參數及action的常見操作方法; 定址; 模式空間和保持空間; 使用標籤 1.首先先來了解一下什麼是sed?
  • shell實現鹼基/胺基酸序列提取(sed,grep,awk三大利器走向天下)
    假定存在file.fa文件,其序列如下所示:現在有四個任務,分別如下所示:任務一:提取包含「RBFOX1」字符的序列第一步:sed -i '/>/i\@' file.fafile.fa指的是包含所有序列的文件
  • 不得不看的17 個linux實用技巧
    3、sed常用命收集:test.txt做測試如何去掉行首的.字符: 在行首添加一個a字符: 在行尾添加一個a字符: 在特定行後添加一個c字符:sed 『/wuguangke/ac』 test.txt在行前加入一個c字符:
  • Linux 運維需要掌握的 17 個實用技巧
    3、sed常用命收集:test.txt做測試如何去掉行首的.字符: 在行首添加一個a字符: 在行尾添加一個a字符: 在特定行後添加一個c字符:sed 『/wuguangke/ac』 test.txt在行前加入一個c字符:
  • Linux常用命令:nslookup,lsmd5sum,uname,history等
    在linux中,文件、文件夾、驅動、命令、腳本都視為文件。9、mkpasswd此命令根據指定長度,產生一個難猜的隨機密碼。其中-l表示長度(Length)。如下圖產生15位的隨機密碼。20、uptime此命令是用來查詢linux系統負載的。系統平均負載被定義在特定時間間隔內運行隊列中的平均進程數。如果一個進程滿足以下條件,則其就會位於運行隊列中:
  • Linux常用命令 awk 入門基礎教程
    **awk從輸入文件或者標準輸入中讀入信息,與sed一樣,信息的讀入也是逐行讀取的。不同的是,awk命令將文本文件中的一行視為一個記錄,而將一行中的某一部分(列)作為記錄的一個欄位。為了操作這些不同的欄位(列),awk借用shell中類似於位置變量的方法,用$1、$2…$9順序的表示不同列,$0表示整行。不同欄位與不同欄位可以通過指定的方式進行分隔,awk默認的分隔符是空格。
  • sed命令的基礎知識及簡單應用
    Sed命令對文件的進行增加、刪除、修改和查找操作,所以是學好sed命令是寫自動化腳本必須的基礎之一。sed先讀取(從輸入中讀取某一行),再執行(在某一行上執行sed命令),再再顯示(把結果顯示在輸出中);默認是顯示修改後內容,不會修改原文件,除非使用-i 參數。