sed

文本處理工具sed

sed? Stream EDitor 行編輯器

sed 是一種流編輯器,它一次處理一行內容,處理時把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(pattern space)接著用sed 命令處理緩沖區的內容,處理完成后把緩沖區的內容送往屏幕,然后讀入下一行,執行下一個循環,但不會清空保留空間,這樣不斷重復,知道文件末尾,文件內容并沒有改變,除非你使用重定向存儲輸出

功能:主要用來自動編輯一個或多個文件,簡化對文件復雜的操作,編寫轉換程序等

sed工具的用法 sed 【option】 ….? ‘script’? inputfile ………

[option] 選項? -n : 不輸出模式空間內容到屏幕上,即不自動打印

-e : 多點編輯

-f : /PATH/SCRIPT_FILE : 從指定文件中讀取編輯腳本

-r : 支持使用擴展正則表達式

-i.bak : 備份文件并原文編輯

‘script’? ? ? ?‘地址命令’

1 不給地址,對全文進行處理

2 單地址: # : 指定行數? ? ? ? $ :最后一行

/pattern/ : 別此處模式所能匹配到的每一行

3 地址范圍: # , #? ? ? ? ? ?# , +#? ? ? ? ? /pat1/ , /pat2/? ? ? ? ?# , /pat1/

4 ~? ? ? ? :? ?進步? ? 1~2? 奇數行? ?2~2? 偶數行

例如:

創建一個文件 f1 里面包含 1-10數字? 用命令sed來做實驗

sed? ‘4p’? f1

RD@RNT`%M1{V)(%6U~PUKGA

只打印第4行 用 -n

sed? -n? ‘4p’ f1

TJ6A`SU97%%J~SE]00~U(2N

打印偶數行? 用 ‘2~2p’? 打印偶數? ? 用’1~2p’打印奇數

sed -n? ‘2~2p’? f1

4VNN%{P[Q}MOVMQ}7([@@SU

-e 多點打印

p: 打印模式空間內容,追加到默認輸出之后

sed? ?-ne ‘2p’ -e ‘4p’ f1

BP9H8VMF4J{)QUT`L4{$]VE

-i.bak 備份 并對原文件編輯? ? sed? -i.bak ‘/aliaseas/aalias p=poweroff’? .bashrc

8@4(I]53A@B_Q6NV6M@(N~X

8@4(I]53A@B_Q6NV6M@(N~X

-f 從文件中讀取編輯腳本

sed -nf? sedscript.txt f1

2Y0E_QNW0_XIXC8}SKMMOR6

sed 工具的編輯命令

d : 刪除模式空間的匹配行,并立即啟用下一輪循環

5S%C_4SU}6X5JG2FIS)H9R4

!:模式空間中匹配行取反處理

R5(UBSV3G[56ITTU{8OI

=: 為模式空間中的行打印行號? 顯示在/etc/passwd 文件中含有root 的行號

FSBD[%)T{TKXO9PB7UU$1TC

a [\]text:在指定行后面追加文本? ??支持使用\n實現多行追加

N9TK_PUYAY@NSI}U{4QVVWL

i [\]text:在行前面插入文本

UHIWT$VLEMJ5FXT~PSH]XTK

c [\]text:替換行為單行或多行文本

0]}]IQ3JWPL@)CUB_5}39Y5

w 文件: 保存模式匹配的行至指定文件

IRZ$_[1V%V%X$(~[_7}4

r /path/somefile:讀取指定文件的文本至模式空間中??匹配到的行后

]L_Y7HE6IS)OTI24B8_1M`F

 

s///:查找替換,支持使用其它分隔符,s@@@,s###

在/etc/default/grub? ? 給GRUB_CMDLINE_LINUX=”crashkernel=auto rhgb quiet” 后面加個字符串xyz

X]JYY)DJCBCYJ`IPP]Y`8V9

 

高級編輯命令

P : 打印模式空間開端至 \n 內容,并追加到默認輸出之前

h :把模式空間中的內容覆蓋至保持空間中

H :把模式空間中的內容追加至保持空間中

g :從保持空間取出數據覆蓋至模式空間

G :從保持空間取出數據追加至模式空間

x :? 把模式空間內容與保持空間內容互換

n :讀取匹配到的行的下一行覆蓋至模式空間

N :讀取匹配到的行的下一行追加至模式空間

d :刪除模式空間中的行

D :如果模式空間包含換行符,則刪除直至第一個換行符的模式空間中,并不會讀取新的輸入行,而使用? ? ? ? ? ? 合成的模式空間重新啟動循環,如果模式空間不包含換行符,則會像發出 d 命令那樣啟動正常的循環

GSV_ZDCU0ARYST_7$NBFCB9

只保留奇數行

@~%8GP}20JRK$H``4U6R0)S

倒序顯示

{OL5{Z06XDGRMK1HJ27]CUY

7787`S_{Q}U5JEQF%1LCYIR

只留最后一行

FJ}`$9B6WW5}((PSI}DQ_Z5

只保留最后2行

R6$$6JZJI7R}@$F3@E8JBB3

將文本文件的n和n+1行合并為一行,n為奇數行

}OX13N$UG1091E6]4[M8`B5

 

 

 

 

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/97375

(0)
祝韻杰-桃子祝韻杰-桃子
上一篇 2018-05-02 20:44
下一篇 2018-05-03 10:27

相關推薦

  • 變量

    變量 echo $name 與 echo “$name” 假如變量是讀取文件,前者會自動縮進成一行,后者保留原有格式 (umask=022,mkdir /f1)括號相當于開啟一個臨時子進程,能讀取當前shall的變量等信息,但是進程號不變,命令結束后恢復剛才狀態 局部變量,環境變量,只讀變量(常量),位置變量,數組 局部變量:只在當前…

    Linux筆記 2018-04-15
  • 網絡和進程管理命令及bash循環

    netstat,dstat,route,nmcli,bash,until循環,while循環

    2018-04-10
  • 計算機原理與Linux基礎

    計算機的組成及功能 1、其實計算機的組織分為內部設備和外部設備, 內部設備: ? ? ? ? CPU:運算器、寄存器、緩存 ? ? ? ? 存儲器:內存,RAM(Random Access Memory) ? ? ? ? 控制器:控制器是整個計算機系統的控制中心,它指揮計算機各部分協調地工作,保證計算機按照預先規定的目標和步驟有條不紊地進行操作及處理。 外部…

    Linux筆記 2018-05-13
  • boot

    把boot目錄都刪除了怎么辦 文件的 關鍵 缺少 唯獨缺少 grub.conf???? ;創建這個文件 以上是boot下文件都刪除了的補救法 下面是第二種方法 光盤啟動,救援模式?? ,用安裝包的方式 不能安裝在當前的跟下 grub-install安裝grub相關信息 寫 以上是boot是獨立分區

    2018-05-13
  • Linux-文件管理

    文件系統分層結構標準 http://www.pathname.com/fhs http://www.pathname.com/fhs/pub/fhs-2.3.pdf 包括 boot bin sbin etc lib64 tmp usr mnt media dev var home net misc srv proc sys root opt selinux …

    2018-03-30
  • 磁盤管理

    本章節主要介紹磁盤分區、文件系統、掛載、以及swap,另外還有工具dd的使用等等。

    2018-04-25
欧美性久久久久