文本處理工具sed

一個強大的文本處理sed,行編輯器

9

文本處理工具? sed:

sed介紹

sed??? 行編輯器(用來編輯一個或多個文件)

sed???? [option ] …?? ‘script’?? inputfile…

常用選項:

-n??? 關閉自動打印

-e: 多點編輯

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

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

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

script:?? ‘地址命令’

地址定界:

  1. 不給地址:對全文進行處理
  2. 單地址:# :指定行; $:最后一行

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

  1. 地址范圍:#,# #,+# ???????/pat1/,/pat2/ ????????#,/pat1/
  2. ~:步進 1~2 奇數行?????? ?2~2 偶數行

編輯命令;

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

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

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

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

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

w ???/path/somefile: 保存模式匹配的行至指定文件

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

=: 為模式空間中的行打印行號

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

搜索替代

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

替換標記:

g: 行內全局替換

p: 顯示替換成功的行

w ?/PATH/TO/SOMEFILE:將替換成功的行保存至文件中

 

例如: sed? -r?? ‘s/(.*)/magedu\1/’?? /etc/passwd?????? //每行開頭加magedu

sed -r? ‘/GRUB_CMDLINE_LINUX/s/(.*)”$/\1 xyz”/’?? /etc/default/grub

sed -r? ‘/GRUB_CMDLINE_LINUX/s/”$/ xyz”/’?? /etc/default/grub

ifconfig ens32 |sed -n ‘2p’|sed? -r? ‘s@.*inet (.*) net.*@\1@‘?? //取IP地址

ifconfig ens32 |sed? -r? ‘2!d;s@.*inet (.*) net.*@\1@‘????? //取IP地址

ifconfig ens32 |sed? -n ‘2p’ |sed -e ‘s/.*inet//’ -e ‘s/ netmask.*//’???? //取IP地址

echo “/etc/sysconfig/network”? |sed -r ‘s/(.*\/)([^/].*\/?$)/\2/’? //取基名或文件名

?

sed兩種空間模式:模式空間:相當于處理數據的地方

保持空間:相當于存儲

高級編輯命令

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

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

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

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

G:從保持空間取出內容追加至模式空間

x: 把模式空間中的內容與保持空間中的內容進行互換

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

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

d: 刪除模式空間中的行

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

sed?? -n? ‘n;p’??? file或?? sed? -n?? ‘2~2p’??? file??? //打印偶數行

sed?? ‘1!G;h;$!d’? file?? //倒序顯示文本內容

sed? ‘N;D’?? file????????? //只保留最后一行內容

sed? ‘$!N;$!D’???? file?? //保留最后兩行文本

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

(0)
qljqlj
上一篇 2018-04-19
下一篇 2018-04-19

相關推薦

  • 第二周總結

    反向單引號 ` `:執行能力強,可以執行命令 [等價于$()]單引號 ‘ ’:只顯示字符雙引號 “ ”:識別變量,不識別命令花括號{ }: 里面內容互相組合 打印重復字符串的簡化形式echo file{1,3,5} 結果為:file1 file3 file5rm -f file{1,3,5} 刪除file1 file3 file5echo file{1..1…

    Linux筆記 2018-07-29
  • 馬哥學堂的第二周

    1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。 cp? ? 將一份文件復制到其他目錄之中 使用-r 可實現遞歸復制。遞歸復制,可將一個目錄下的文件,復制到另一個目錄下。 rm? 用于刪除文件,使用-f可強制刪除。 mv 將一個文件移動到另一個目錄下。若在同一個目錄下使用mv,可實現更名。 cat 顯示文件內容。 wc 顯示文件的…

    2018-05-20
  • 文本處理命令

    查看文件 cat   tac rev   more less 行號 cat -n … | grep … grep -n … 文件名 ls … | grep … 行處理 截取 head -n # FILE tail -n # FILE 排序 sort -t “X&#82…

    Linux筆記 2018-04-22
  • Linux發行版的基礎目錄名稱命名法則及功用規定

    對于linux來說,普天之下莫非王土,所有的文件必須從根開始。磁盤有多個分區,如何跟根建立關系?我們把磁盤上一個分區定義為根分區,那么其它分區被根分區奴役。其它分區掛載(關聯)到根分區上。 所有linux命名必須遵守,FHS,:Filesystem Hieracchy standard.文件系統層級機構標準。定義根下必須有哪些目錄,哪些可以沒有,不同發行版所…

    2018-06-27
欧美性久久久久