Linux高頻命令專題 4 sed

2022-05-07 07:57:11 字數 1965 閱讀 9584

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...