sed:全稱 stream editor,是乙個很好的檔案處理工具,本身是乙個管道命令,主要是以行為單位進行處理,可以將資料進行替換、刪除、新增、選取等特定工作。
用法:
sed [-nefr] [動作]
引數:-n : 安靜模式,在一般sed的用法中,所有來自stdin的資料一般都會被列出到螢幕上,但如果加上-n引數後,則只有經過sed特殊處理的那一行(或者操作)才會被列出來
-f : 直接將sed動作寫在乙個檔案內,-f filename 則可以執行filename內的sed操作
-r: sed 動作支援的是擴充套件型正規表示式的語法(預設是基礎正規表示式語法)
-i: 直接修改讀取的檔案內容,而不是由螢幕輸出
[動作]說明:
[n1[,n2]] funtion
n1,n2:定會存在,一般代表選擇進行動作的行數,例如,「10,20[動作行為]」 ,在第10行到20行之間進行
function:
c:change替換,c後可接字串,這些字串可以替換n1,n2之間的行
d: delete 刪除,後通常不接任何引數
p: print 列印,將某個選擇的資料列印出來,通常會與引數sed -n 一起執行
s: 替換,可以直接進行替換工作,通常這個s的動作可以搭配正規表示式
功能:1. 以行為單位的新增/刪除功能(不會修改原檔案)
使用動作引數: d、 a 、 i
nl /etc/passwd | sed '2,5d' <== 刪除第2~5行
nl /etc/passwd | sed '2adrink tea' <== 在第2行之後,新增新行,行的內容為「drink tea」
nl /etc/passwd | sed '2idrink tea' <== 在第2行之前,插入新行,行的內容為「drink tea」
2. 以行為單位的替換與顯示功能(不會修改原檔案)
使用動作引數: c、p
nl /etc/passwd | sed '2,5cno 2-5 lines' <== 將第2~5行替換為 no 2-5 lines
nl /et/cpasswd | sed -n '2,5p' <== 僅顯示/etc/passwd中的提2~5行,這裡要與-n一起執行,-n代表的是「安靜模式」
3. 部分資料的查詢並替換的功能(不會修改原檔案)
基本替換格式:
sed 's/要被替換的字串/新的字串/g'
例如: /sbin/ifconfig eth0 | grep 'inet addr' | sed 's/^.*addr://g' <== 將ip前面的部分予以刪除
4. 直接修改檔案內容(會修改原檔案,慎用)
使用 -i 引數
sed-i's/\.$/\!/g' regular_express.txt <== 將regular_express.txt檔案內每一行結尾為'.' 的換成'!'
linux 每日乙個命令
編寫shell指令碼 hello.sh bin bash the first program echo e e 1 34m hello world e 0m 執行指令碼賦予執行許可權,直接執行 chmod 755 hello.sh hello.sh 通過bash呼叫執行指令碼 bash hello....
每日乙個Linux命令 free
free m 以m為單位來顯示記憶體數值,預設時free的單位為kb 姑且我們把上圖看成乙個陣列 free output,以下簡稱fo 首先,第1行為列名,total 物理記憶體總量,used 已經使用掉的記憶體,free 剩餘可用記憶體,shared 程序共享的記憶體占用 其值總是0 buffer...
每日乙個Linux命令(四) tr命令
本原創文章屬於 linux大棚 部落格。部落格位址為 tr指令從標準輸入裝置讀取資料,經過字串轉譯後,輸出到標準輸出裝置 帶有最常用選項的tr命令格式為 tr c d s string1 to translate from string2 to translate to input file 這裡 ...