1. 程式人生 > >Linux Shell之sed命令

Linux Shell之sed命令

ed是一個很好的檔案處理工具,本身是一個管道命令,主要是以行為單位進行處理,可以將資料行進行替換、刪除、新增、選取等特定工作,下面先了解一下sed的用法
sed命令列格式為:

sed [選項] ‘命令’ 輸入文字 

 sed [-nefri] ‘command’ 輸入文字 

常用選項:

-n∶使用安靜(silent)模式。在一般sed 的用法中,所有來自 STDIN的資料一般都會被列出到螢幕上。但如果加上 -n 引數後,則只有經過sed特殊處理的那一行(或者動作)才會被列出來。
       -e∶直接在指令列模式上進行 sed 的動作編輯;
       -f∶直接將 sed 的動作寫在一個檔案內, -f filename 則可以執行 filename 內的sed動作;
       -r∶sed 的動作支援的是延伸型正規表示法的語法。(預設是基礎正規表示法語法)
       -i∶直接修改讀取的檔案內容,而不是由螢幕輸出。

       

常用命令:


        a  ∶新增, a 的後面可以接字串,而這些字串會在新的一行出現(目前的下一行)~
       c   ∶取代, c 的後面可以接字串,這些字串可以取代n1,n2 之間的行!
       d   ∶刪除,因為是刪除啊,所以 d後面通常不接任何咚咚;
        i   ∶插入, i的後面可以接字串,而這些字串會在新的一行出現(目前的上一行);
        p  ∶列印,亦即將某個選擇的資料印出。通常 p 會與引數 sed-n 一起運作~
        s  ∶取代,可以直接進行取代的工作哩!通常這個 s的動作可以搭配正規表示法!例如 1,20s/old/new/g 就是啦!

舉例:(假設我們有一檔名為ab)

      刪除某行

     [[email protected] ruby] # sed '1d' ab  

      #刪除第一行 

     [[email protected] ruby] # sed '$d' ab 

      #刪除最後一行

     [[email protected] ruby] # sed '1,2d' ab

     #刪除第一行到第二行

     [[email protected] ruby] # sed '2,$d' ab 

     #刪除第二行到最後一行

   顯示某行

.    [
[email protected]
ruby] # sed -n '1p' ab #顯示第一行 [[email protected] ruby] # sed -n '$p' ab #顯示最後一行 [[email protected] ruby] # sed -n '1,2p' ab #顯示第一行到第二行 [[email protected] ruby] # sed -n '2,$p' ab #顯示第二行到最後一行   使用模式進行查詢 [[email protected] ruby] # sed -n '/ruby/p' ab #查詢包括關鍵字ruby所在所有行 [[email protected] ruby] # sed -n '/\$/p' ab #查詢包括關鍵字$所在所有行,使用反斜線\遮蔽特殊含義   增加一行或多行字串 [[email protected] ruby]# cat ab Hello! ruby is me,welcome to my blog. end [[email protected] ruby] # sed '1a drink tea' ab #第一行後增加字串"drink tea" Hello! drink tea ruby is me,welcome to my blog. end [[email protected] ruby] # sed '1,3a drink tea' ab #第一行到第三行後增加字串"drink tea" Hello! drink tea ruby is me,welcome to my blog. drink tea end drink tea [[email protected] ruby] # sed '1a drink tea\nor coffee' ab #第一行後增加多行,使用換行符\n Hello! drink tea or coffee ruby is me,welcome to my blog. end   代替一行或多行 [[email protected] ruby] # sed '1c Hi' ab #第一行代替為Hi Hi ruby is me,welcome to my blog. end [[email protected] ruby] # sed '1,2c Hi' ab #第一行到第二行代替為Hi Hi end   替換一行中的某部分   格式:sed 's/要替換的字串/新的字串/g' (要替換的字串可以用正則表示式) [[email protected] ruby] # sed -n '/ruby/p' ab | sed 's/ruby/bird/g' #替換ruby為bird   [[email protected] ruby] # sed -n '/ruby/p' ab | sed 's/ruby//g' #刪除ruby 插入 [[email protected] ruby] # sed -i '$a bye' ab #在檔案ab中最後一行直接輸入"bye" [[email protected] ruby]# cat ab Hello! ruby is me,welcome to my blog. end bye


相關推薦

Linux Shellsed命令

ed是一個很好的檔案處理工具,本身是一個管道命令,主要是以行為單位進行處理,可以將資料行進行替換、刪除、新增、選取等特定工作,下面先了解一下sed的用法 sed命令列格式為: sed [選項] ‘命令’ 輸入文字  sed [-nefri] ‘command’ 輸入文字

Linux Shell程式設計 sed命令

概述 sed命令用來選取、替換、刪除、新増資料 sed 是一種幾乎可以應用在所有 UNIX 平臺(包括 Linux)上的輕量級流編輯器。sed 有許多很好的特性。首先,它相當小巧,通常要比你所喜愛的指令碼語言小多倍。其次,因為 sed 是一種流編輯器,所以,它可以對從如管道這樣的標準輸入中接收的

Linux Shelldeclare命令

1、變數宣告為數值型 declare -i num=12 也可以檢視變數型別 declare -p num 得到的結果如下 declare -i num="12" 2、宣告陣列變數 (1)定義陣列 (2)檢視陣列 echo ${a

linux shellsed

  sed編輯器逐行處理輸入,然後把結果傳送到螢幕。 -i選項:直接作用原始檔,原始檔將被修改。 sed命令和選項: a\ 在當前行後新增一行或多行 c\ 用新文字替換當前行中的文字 d 刪除行 i\ 在當前行之前插入文字 h 把模式空間的內容複製到暫存緩衝區 H 把

linux shellsed命令在文字的行尾或行首新增字元

昨天寫一個指令碼花了一天的2/3的時間,而且大部分時間都耗在了sed命令上,今天不總結一下都對不起昨天流逝的時間啊~~~ 用sed命令在行首或行尾新增字元的命令有以下幾種: 假設處理的文字為test.file 在每行的頭新增字元,比如"HEAD",命令如下: sed 's

awk && sed (4)====linux 三劍客awk 命令

awkhttp://www.cnblogs.com/ginvip/p/6352157.html這是我發現的一篇博客,關於awk 的內容寫的很好,需要的可以看看awk 關於!號(1)取奇數行[root@localhost shell]# seq 10 | awk ‘i=!i‘13579(2)取偶數行[root@

Linux】基礎每日一命sed命令

標準 tin .... ddr 一行 inet6 修改文件 方法 兩個 sed命令是利用script來處理文件 sed可依照script的指令,來處理、編輯文本文件。sed主要用來自動編輯一個或多個文件;簡化對文件的反復操作;編寫轉換程序等 語法:sed [-hnV][-e

玩轉LINUXsed命令詳解

用戶 常見 mail 括號 {} int 緩沖 復雜 commands Linux sed命令是利用script來處理文本文件。 sed可依照script的指令,來處理、編輯文本文件。 Sed主要用來自動編輯一個或多個文件;簡化對文件的反復操作;編寫轉換程序等。 執行時,s

Linuxsed命令詳解

sed是一種流編輯器,它是文字處理中非常好的工具,能夠完美的配合正則表示式使用,功能不同凡響。處理時,把當前處理的行儲存在臨時緩衝區中,稱為“模式空間”(pattern space),接著用sed命令處理緩衝區中的內容,處理完成後,把緩衝區的內容送往螢幕。接著處理下一行,

Linuxsed命令常見用法

cron 更改 inux api lin sed命令 -s 輸出 syslog 1. sed(stream editor),流編輯器   linux中,主要中sed命令實現對文件的增刪改替換查 名稱 sed - 用於過濾和轉換文本的流編輯

linux shell if-------用if做判斷

exist word then ucc reserve 服務器 單機 mon true 一 簡介 1 字符串判斷 str1 = str2      當兩個串有相同內容、長度時為真 str1 != str2      當串str1和str2不等時為真 -n s

linux shell 嘗試編寫 企業級 啟動腳本

nginx data err 企業級 開機自啟 註意 sbin 分享 fin 企業Shell面試題10:開發企業級MySQL啟動腳本 說明: MySQL啟動命令為: 1 /bin/sh mysqld_safe --pid-file=$mysqld_pid_

linux shell 終端讀寫文件數據流和重定向>,<,<<,>>

運行 文件的 方式 ech 描述符 run 傳遞 實例 pan 終端實現文件中數據流的讀寫; 重定向命令列表如下: 命令說明 command > file 將輸出重定向到 file。將終端數據寫到文件file中 command < file 將輸入重定

Linux自學筆記——sed命令

linux sed sed行編輯器: sed是一種行編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時存儲區中,稱為“模式空間”,接著用sed命令處理緩沖區中的內容,處理完成後,把緩沖區的內容送往屏幕。接著處理下一行,這樣不斷重復,知道文件末尾。文件內容並沒有改變,除非你使用重定向存儲輸

Linux基礎常見命令用法(一)

linux基礎命令入門(一)一、Linux文件目錄結構 在講述之前,先簡短的說說Windows文件結構,打開‘計算機’,看到的一個個的驅動器(盤符,例C盤、D盤等),點開其中任意盤符,看到的是一個個文件或文件夾,繼續打開...,每個盤都有自己的根目錄。若是把其打開過程畫下來,便可得到如下多棵倒樹並列的圖

shellsed命令的用法

直接 添加 不支持 sed命令 交互 擴展正則 每一個 shel 編輯 sed (stream editor)流編輯器也是linux中的一條命令,在shell中經常需要用到的非交互式修改文件內容的命令。sed處理文本是按行處理,也就是讀一行處理一行。sed的命令基本格式是:

Linux YUMYUM命令

Linux YUM的簡單操作repolist 查看倉庫列表 可以 選擇查看all|enabled|disabledlist查看程序包anaconda 表示在安裝系統時一起安裝的軟件list 也有自己的選項: all 顯示所有的程序包 available 顯示可以安裝的程序包

shellLinux shellwhile循環

shell Linux 腳本 while 循環 while和for一樣都是循環語句,相對來說,for循環用的會比較多一點。但是while循環在讀取文件行的時候會特別好用。 while 格式 while [ 條件 ] do 內容 done 實例:判斷i是否小與等於5,如果小於等於

shellLinux shell case 詳解

shell linux 運維 腳本 case 總的來說,case是一個判斷語句 ,比if更加容易理解一點。 case 語句格式 case in 變量 值1) 內容 ;; 值2) 內容 ;; esac 註意:每個內容後面都需要添加 ;; ,可以跨行也可以同行寫。 實例:

shellLinux shell break和continue詳解

shell break linux 腳本 break和continue都可以在循環中使用,但是兩個的功能有點不同,比如break是跳出整個循環,而continue則是跳出本次循環,繼續下個循環,下面我們會通過例子來演示這兩個的不同之處。 ** 例子:打印數字1-10,如果 i&gt