欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Linux命令sed(流編輯器)的用法詳解

 更新時間:2022年09月08日 10:09:20   作者:IT利刃出鞘  
sed編輯器要比交互式編輯器快得多,可以快速完成對數(shù)據(jù)的自動修改,比如:替換,這篇文章主要介紹了Linux命令sed(流編輯器)使用/實例,需要的朋友可以參考下

簡介

說明

本文介紹Linux的sed流編輯器的用法。

sed編輯器要比交互式編輯器快得多,可以快速完成對數(shù)據(jù)的自動修改,比如:替換。

sed編輯器介紹

sed編輯器被稱作流編輯器(stream editor)。在交互式文本編輯器(比如vim)中,用鍵盤命令來交互式地編輯數(shù)據(jù)中的文本。和交互式文本編輯器相反,流編輯器在處理數(shù)據(jù)前基于預(yù)先提供的規(guī)則來編輯數(shù)據(jù)。

sed編輯器會執(zhí)行下列操作。

  • 一次從輸入中讀取一行數(shù)據(jù)。
  • 根據(jù)所提供的編輯器命令匹配數(shù)據(jù)。
  • 按照命令修改流中的數(shù)據(jù)。
  • 將新的數(shù)據(jù)輸出到STDOUT。

流編輯器將所有命令與一行數(shù)據(jù)匹配完畢后,它會讀取下一行數(shù)據(jù)并重復(fù)這個過程。在流編輯器處理完流中的所有數(shù)據(jù)行后,它就會終止。

選項與命令

格式

sed [選項] [腳本命令] 文件名

選項

  • -n

使用安靜silent模式。在一般sed的用法中,所有來自stdin的內(nèi)容一般都會被列出到屏幕上。但如果加上-n參數(shù)后,則只有經(jīng)過sed特殊處理的那一行(或者動作)才會被列出來

  • -e

直接在指令列模式上進(jìn)行 sed 的動作編輯

  • -f

直接將 sed 的動作寫在一個文件內(nèi),-f filename則可以執(zhí)行filename內(nèi)的sed命令

  • -r

讓sed命令支持?jǐn)U展的正則表達(dá)式(默認(rèn)是基礎(chǔ)正則表達(dá)式)

  • -i

直接修改文件中內(nèi)容。(如果不加-i,則由屏幕輸出,不修改原文件)

命令

  • a\
    • 在當(dāng)前行下面插入文本。
  • i\
    • 在當(dāng)前行上面插入文本。
  • c\
    • 把選定的行改為新的文本。
  • d
    • 刪除,刪除選擇的行。
  • D
    • 刪除模板塊的第一行。
  • s
    • 替換指定字符
  • g
    • 獲得內(nèi)存緩沖區(qū)的內(nèi)容,并替代當(dāng)前模板塊中的文本。
  • G
    • 獲得內(nèi)存緩沖區(qū)的內(nèi)容,并追加到當(dāng)前模板塊文本的后面。
  • h
    • 拷貝模板塊的內(nèi)容到內(nèi)存中的緩沖區(qū)。
  • H
    • 追加模板塊的內(nèi)容到內(nèi)存中的緩沖區(qū)。
  • l
    • 列表不能打印字符的清單。
  • n
    • 讀取下一個輸入行,用下一個命令處理新的行而不是用第一個命令。
  • N
    • 追加下一個輸入行到模板塊后面并在二者間嵌入一個新行,改變當(dāng)前行號碼。
  • p
    • 打印模板塊的行。
  • P
    • 打印模板塊的第一行。
  • q
    • 退出Sed。
  • b label
    • 分支到腳本中帶有標(biāo)記的地方,如果分支不存在則分支到腳本的末尾。
  • t label
    • if分支,從最后一行開始,條件一旦滿足或者T,t命令,將導(dǎo)致分支到帶有標(biāo)號的命令處,或者到腳本的末尾。
  • T label
    • 錯誤分支,從最后一行開始,一旦發(fā)生錯誤或者T,t命令,將導(dǎo)致分支到帶有標(biāo)號的命令處,或者到腳本的末尾。
  • r file
    • 從file中讀行。
  • w file
    • 寫并追加模板塊到file末尾。
  • W file
    • 寫并追加模板塊的第一行到file末尾。
  • !
    • 表示后面的命令對所有沒有被選定的行發(fā)生作用。
  • =
    • 打印當(dāng)前行號碼。
  • #
    • 把注釋擴(kuò)展到下一個換行符以前。

替換命令(s)

命令格式

[address]s/pattern/replacement/flags
  • address
    • 表示指定要操作的具體行
  • pattern
    • 需要被替換的內(nèi)容
  • replacement
    • 要替換的新內(nèi)容。
  • flags
    • 操作標(biāo)記符

通配符(正則表達(dá)式)

sed支持正則表達(dá)式

示例:將單詞“like”替換為“hello”,其他帶like的單詞不變。

方法:

echo 'alike like liker' | sed 's/\blike\b/hello/g'

結(jié)果

示例

準(zhǔn)備一個測試文件data1.txt,內(nèi)容如下:

The quick red fox jumps over the lazy dog.
The quick red fox jumps over the lazy dog.
The quick red fox jumps over the lazy dog.
The quick red fox jumps over the lazy dog.

1.直接替換原文件內(nèi)容

備注:建議先備份一下:cp data1.txt data1.txt.bak

需求:將red改為yellow。

方法:

sed -i 's/red/yellow/g' data1.txt

結(jié)果(查看data1.txt)

cat data1.txt

The quick yellow fox jumps over the lazy dog.
The quick yellow fox jumps over the lazy dog.
The quick yellow fox jumps over the lazy dog.
The quick yellow fox jumps over the lazy dog.

2.在命令行上使用多個命令

需求:將red改為yellow,dog改為cat。

方法:

sed -e 's/red/yellow/g; s/dog/cat/g' data1.txt

結(jié)果(上邊命令執(zhí)行結(jié)束后直接輸出如下內(nèi)容)

The quick yellow fox jumps over the lazy cat.
The quick yellow fox jumps over the lazy cat.
The quick yellow fox jumps over the lazy cat.
The quick yellow fox jumps over the lazy cat.

3.從標(biāo)準(zhǔn)輸入獲取數(shù)據(jù)

需求:將“This is a big test”中的“big”改為“small”

方法:

echo 'This is a big test' | sed 's/big/small/g'

結(jié)果(上邊命令執(zhí)行結(jié)束后直接輸出如下內(nèi)容)

This is a small test

如下圖所示:

到此這篇關(guān)于Linux命令sed(流編輯器)使用/實例的文章就介紹到這了,更多相關(guān)Linux命令sed內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解Linux中的wget命令

    詳解Linux中的wget命令

    Linux系統(tǒng)中的wget是一個下載文件的工具,它用在命令行下。對于Linux用戶是必不可少的工具,我們經(jīng)常要下載一些軟件或從遠(yuǎn)程服務(wù)器恢復(fù)備份到本地服務(wù)器。下面通過本文給大家介紹Linux中的wget命令,一起看看吧
    2017-09-09
  • shell 操作釘釘機(jī)器人實現(xiàn)告警提醒的方法

    shell 操作釘釘機(jī)器人實現(xiàn)告警提醒的方法

    這篇文章主要介紹了shell 操作釘釘機(jī)器人實現(xiàn)告警提醒的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • linux 中g(shù)rep 匹配制表符 和 換行符的命令

    linux 中g(shù)rep 匹配制表符 和 換行符的命令

    這篇文章主要介紹了linux 中g(shù)rep 匹配制表符 和 換行符的命令,需要的朋友可以參考下
    2018-07-07
  • Linux腳本自動打包發(fā)服務(wù)

    Linux腳本自動打包發(fā)服務(wù)

    這篇文章主要介紹了Linux腳本自動打包發(fā)服務(wù)的相關(guān)資料,需要的朋友可以參考下
    2019-11-11
  • 淺談Linux環(huán)境變量與系統(tǒng)編程

    淺談Linux環(huán)境變量與系統(tǒng)編程

    本文主要介紹了淺談Linux環(huán)境變量與系統(tǒng)編程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Shell?iptales防火墻設(shè)置的方法步驟

    Shell?iptales防火墻設(shè)置的方法步驟

    本文主要介紹了Shell?iptales防火墻設(shè)置的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Shell腳本編程中常用的數(shù)學(xué)運算實例

    Shell腳本編程中常用的數(shù)學(xué)運算實例

    這篇文章主要介紹了Shell腳本編程中常用的數(shù)學(xué)運算實例,包含最基本的加減乘除,還有質(zhì)數(shù)、偶數(shù)的判斷等,需要的朋友可以參考下
    2014-06-06
  • shell腳本編程之for語句、if語句使用介紹

    shell腳本編程之for語句、if語句使用介紹

    這篇文章主要是介紹了shell腳本編程之for語句、if語句的使用方法,學(xué)習(xí)shell編程的朋友可以看下
    2013-09-09
  • Linux下有名管道m(xù)kfifo使用詳解

    Linux下有名管道m(xù)kfifo使用詳解

    有名管道用于非親緣關(guān)系進(jìn)程之間的通訊,創(chuàng)建有名管道使用到的庫函數(shù)是mkfifo(),這里強(qiáng)調(diào)是庫函數(shù)的原因是,mkfifo同時也是一個用戶指令,這篇文章主要介紹了Linux下有名管道m(xù)kfifo使用,需要的朋友可以參考下
    2023-07-07
  • shell實現(xiàn)字符編碼轉(zhuǎn)換工具分享

    shell實現(xiàn)字符編碼轉(zhuǎn)換工具分享

    這篇文章主要介紹了shell實現(xiàn)的字符編碼轉(zhuǎn)換工具,支持UTF-8轉(zhuǎn)GBK和GBK轉(zhuǎn)UTF-8,需要的朋友可以參考下
    2014-03-03

最新評論