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 Shell之sed命令
ed是一個很好的檔案處理工具,本身是一個管道命令,主要是以行為單位進行處理,可以將資料行進行替換、刪除、新增、選取等特定工作,下面先了解一下sed的用法 sed命令列格式為: sed [選項] ‘命令’ 輸入文字 sed [-nefri] ‘command’ 輸入文字
Linux Shell程式設計 sed命令
概述 sed命令用來選取、替換、刪除、新増資料 sed 是一種幾乎可以應用在所有 UNIX 平臺(包括 Linux)上的輕量級流編輯器。sed 有許多很好的特性。首先,它相當小巧,通常要比你所喜愛的指令碼語言小多倍。其次,因為 sed 是一種流編輯器,所以,它可以對從如管道這樣的標準輸入中接收的
Linux Shell之declare命令
1、變數宣告為數值型 declare -i num=12 也可以檢視變數型別 declare -p num 得到的結果如下 declare -i num="12" 2、宣告陣列變數 (1)定義陣列 (2)檢視陣列 echo ${a
linux shell之sed
sed編輯器逐行處理輸入,然後把結果傳送到螢幕。 -i選項:直接作用原始檔,原始檔將被修改。 sed命令和選項: a\ 在當前行後新增一行或多行 c\ 用新文字替換當前行中的文字 d 刪除行 i\ 在當前行之前插入文字 h 把模式空間的內容複製到暫存緩衝區 H 把
linux shell 用sed命令在文字的行尾或行首新增字元
昨天寫一個指令碼花了一天的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
玩轉LINUX之sed命令詳解
用戶 常見 mail 括號 {} int 緩沖 復雜 commands Linux sed命令是利用script來處理文本文件。 sed可依照script的指令,來處理、編輯文本文件。 Sed主要用來自動編輯一個或多個文件;簡化對文件的反復操作;編寫轉換程序等。 執行時,s
Linux之sed命令詳解
sed是一種流編輯器,它是文字處理中非常好的工具,能夠完美的配合正則表示式使用,功能不同凡響。處理時,把當前處理的行儲存在臨時緩衝區中,稱為“模式空間”(pattern space),接著用sed命令處理緩衝區中的內容,處理完成後,把緩衝區的內容送往螢幕。接著處理下一行,
Linux之sed命令常見用法
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盤等),點開其中任意盤符,看到的是一個個文件或文件夾,繼續打開...,每個盤都有自己的根目錄。若是把其打開過程畫下來,便可得到如下多棵倒樹並列的圖
shell中sed命令的用法
直接 添加 不支持 sed命令 交互 擴展正則 每一個 shel 編輯 sed (stream editor)流編輯器也是linux中的一條命令,在shell中經常需要用到的非交互式修改文件內容的命令。sed處理文本是按行處理,也就是讀一行處理一行。sed的命令基本格式是:
Linux YUM之YUM命令
Linux YUM的簡單操作repolist 查看倉庫列表 可以 選擇查看all|enabled|disabledlist查看程序包anaconda 表示在安裝系統時一起安裝的軟件list 也有自己的選項: all 顯示所有的程序包 available 顯示可以安裝的程序包
【shell】Linux shell之while循環
shell Linux 腳本 while 循環 while和for一樣都是循環語句,相對來說,for循環用的會比較多一點。但是while循環在讀取文件行的時候會特別好用。 while 格式 while [ 條件 ] do 內容 done 實例:判斷i是否小與等於5,如果小於等於
【shell】Linux shell 之 case 詳解
shell linux 運維 腳本 case 總的來說,case是一個判斷語句 ,比if更加容易理解一點。 case 語句格式 case in 變量 值1) 內容 ;; 值2) 內容 ;; esac 註意:每個內容後面都需要添加 ;; ,可以跨行也可以同行寫。 實例:
【shell】Linux shell 之break和continue詳解
shell break linux 腳本 break和continue都可以在循環中使用,但是兩個的功能有點不同,比如break是跳出整個循環,而continue則是跳出本次循環,繼續下個循環,下面我們會通過例子來演示這兩個的不同之處。 ** 例子:打印數字1-10,如果 i>