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 就是啦!
# 增
[root@localhost ~]# sed '$a tangerine:50:100' sort.txt # 最後一行增加
orange:20:3.4
banana:30:5.5
pear:90:2.3
tangerine:50:100
[root@localhost ~]# cat sort.txt # 不改變原文本
orange:20:3.4
banana:30:5.5
pear:90:2.3
# 刪sed '1d' test #刪除第一行
sed '$d' test #刪除最後一行
sed '1,2d' test #刪除第一行到第二行
sed '2,$d' test #刪除第二行到最後一行
#改sed '1c pitaya 100:2.5' sort.txt #第一行替換為火龍果
pitaya 100:2.5
orange:20:3.4
banana:30:5.5
pear:90:2.3
# 在sort.txt最後一行插入bye,注意,這裡的改變是改變了原檔案
sed -i '$a bye' sort.txt # -i 直接修改讀取的檔案內容,而不是由螢幕輸出。
cat sort.txt
orange:20:3.4
banana:30:5.5
pear:90:2.3
bye# 查
sed -n '1p' test #顯示第一行
sed -n '$p' test #顯示最後一行
sed -n '1,2p' test #顯示第一行到第二行
sed -n '2,$p' test #顯示第二行到最後一行
sed -n '/ruby/p' test #查詢包括關鍵字ruby所在所有行
# 源操作
sed -i '/匹配字串/d' filename #刪除 匹配字串 這一行
sed -i '/匹配字串/s/替換源字串/替換目標字串/g' filename # 替換
Linux高頻命令專題 23 tar
通過ssh訪問伺服器,難免會要用到壓縮,解壓縮,打包,解包等,這時候tar命令就是是必不可少的乙個功能強大的工具。linux中最流行的tar是麻雀雖小,五臟俱全,功能強大。tar命令可以為linux的檔案和目錄建立檔案。利用tar,可以為某一特定檔案建立檔案 備份檔案 也可以在檔案中改變檔案,或者向...
Linux高頻命令專題 22 gzip
減少檔案大小有兩個明顯的好處,一是可以減少儲存空間,二是通過網路傳輸檔案時,可以減少傳輸的時間。gzip是在linux系統中經常使用的乙個對檔案進行壓縮和解壓縮的命令,既方便又好用。gzip不僅可以用來壓縮大的 較少使用的檔案以節省磁碟空間,還可以和tar命令一起構成linux作業系統中比較流行的壓...
Linux高頻命令專題 20 du
顯示每個檔案和目錄的磁碟使用空間。du 選項 檔案 檔案預設就代表當前目錄大小 a或 all 顯示目錄中個別檔案的大小。b或 bytes 顯示目錄或檔案大小時,以byte為單位。c或 total 除了顯示個別目錄或檔案的大小外,同時也顯示所有目錄或檔案的總和。k或 kilobytes 以kb 102...