Sed 代表流編輯器,常用于 Linux 中基本的文本處理。sed
命令是 Linux 中的重要命令之一,在文件處理方面有著重要作用??捎糜趧h除或移動(dòng)與給定模式匹配的特定行。
它還可以刪除文件中的特定行,它能夠從文件中刪除表達(dá)式,文件可以通過(guò)指定分隔符(例如逗號(hào)、制表符或空格)進(jìn)行標(biāo)識(shí)。
本文列出了 15 個(gè)使用范例,它們可以幫助你掌握 sed
命令。
如果你能理解并且記住這些命令,在你需要使用 sed
時(shí),這些命令就能派上用場(chǎng),幫你節(jié)約很多時(shí)間。
注意:為了方便演示,我在執(zhí)行 sed
命令時(shí),不使用 -i
選項(xiàng)(因?yàn)檫@個(gè)選項(xiàng)會(huì)直接修改文件內(nèi)容),被移除了行的文件內(nèi)容將打印到 Linux 終端。
但是,如果你想在實(shí)際環(huán)境中從源文件中刪除行,請(qǐng)?jiān)?sed
命令中使用 -i
選項(xiàng)。
演示之前,我創(chuàng)建了 sed-demo.txt
文件,并添加了以下內(nèi)容和相應(yīng)行號(hào)以便更好地理解。
1) 如何刪除文件的第一行?
使用以下語(yǔ)法刪除文件首行。
N
表示文件中的第 N 行,d
選項(xiàng)在 sed
命令中用于刪除一行。
語(yǔ)法:
使用以下 sed
命令刪除 sed-demo.txt
中的第一行。
2) 如何刪除文件的最后一行?
使用以下語(yǔ)法刪除文件最后一行。
$
符號(hào)表示文件的最后一行。
使用以下 sed
命令刪除 sed-demo.txt
中的最后一行。
3) 如何刪除指定行?
使用以下 sed
命令刪除 sed-demo.txt
中的第 3 行。
4) 如何刪除指定范圍內(nèi)的行?
使用以下 sed
命令刪除 sed-demo.txt
中的第 5 到 7 行。
5) 如何刪除多行內(nèi)容?
sed
命令能夠刪除給定行的集合。
本例中,下面的 sed
命令刪除了第 1 行、第 5 行、第 9 行和最后一行。
5a) 如何刪除指定范圍以外的行?
使用以下 sed
命令刪除 sed-demo.txt
中第 3 到 6 行范圍以外的所有行。
6) 如何刪除空行?
使用以下 sed
命令刪除 sed-demo.txt
中的空行。
7) 如何刪除包含某個(gè)模式的行?
使用以下 sed
命令刪除 sed-demo.txt
中匹配到 System
模式的行。
8) 如何刪除包含字符串集合中某個(gè)字符串的行?
使用以下 sed
命令刪除 sed-demo.txt
中匹配到 System
或 Linux
表達(dá)式的行。
9) 如何刪除以指定字符開(kāi)頭的行?
為了測(cè)試,我創(chuàng)建了 sed-demo-1.txt
文件,并添加了以下內(nèi)容。
使用以下 sed
命令刪除以 R
字符開(kāi)頭的所有行。
使用以下 sed
命令刪除 R
或者 F
字符開(kāi)頭的所有行。
10) 如何刪除以指定字符結(jié)尾的行?
使用以下 sed
命令刪除 m
字符結(jié)尾的所有行。
使用以下 sed
命令刪除 x
或者 m
字符結(jié)尾的所有行。
11) 如何刪除所有大寫(xiě)字母開(kāi)頭的行?
使用以下 sed
命令刪除所有大寫(xiě)字母開(kāi)頭的行。
12) 如何刪除指定范圍內(nèi)匹配模式的行?
使用以下 sed
命令刪除第 1 到 6 行中包含 Linux
表達(dá)式的行。
13) 如何刪除匹配模式的行及其下一行?
使用以下 sed
命令刪除包含 System
表達(dá)式的行以及它的下一行。
14) 如何刪除包含數(shù)字的行?
使用以下 sed
命令刪除所有包含數(shù)字的行。
使用以下 sed
命令刪除所有以數(shù)字開(kāi)頭的行。
使用以下 sed
命令刪除所有以數(shù)字結(jié)尾的行。
15) 如何刪除包含字母的行?
使用以下 sed
命令刪除所有包含字母的行。