sed是一種流編輯器,可以自動編輯文本文件。sed工具適用於對文本文件進行編輯、刪除、查找、替換、插入等操作。在Linux的世界裡,它是非常常用的命令。sed命令的強大功能主要依仗於它的5個元字符和正則表達式的使用。在本文中,我們將從多個方面對sed匹配做詳細的闡述。
一、sed匹配日期
在文本文件中,經常會遇到需要匹配日期的情況。sed可以根據正則表達式匹配特定的日期格式。
# 匹配以2022-05-31日期格式開頭的行 sed -n '/^2022-05-31/p' file.txt
上面的命令中,“-n”表示不輸出默認輸出的所有內容,“/^2022-05-31/”表示以2022-05-31為開頭的行,“p”表示打印符合條件的行。
二、sed匹配內容
在文本文件中,經常需要匹配特定的字符串。sed命令可以根據字符串匹配相應的內容。
# 匹配含有“example”關鍵詞的行 sed -n '/example/p' file.txt
上面的命令中,“/example/”表示匹配包含“example”關鍵詞的行,“p”表示打印符合條件的行。
三、sed匹配方括號
在文本文件中,方括號通常可以表示範圍或特定集合。sed可以通過方括號匹配相應的內容。
# 匹配包含[a,f,u]集合的行 sed -n '/[afu]/p' file.txt
上面的命令中,“/[afu]/”表示匹配包含[a,f,u]集合的行,“p”表示打印符合條件的行。
四、sed匹配特定結尾
在文本文件中,經常需要匹配特定的結尾。sed命令可以根據特定的結尾匹配相應的內容。
# 匹配以jpg結尾的行 sed -n '/\.jpg$/p' file.txt
上面的命令中,“/\.jpg$/”表示匹配以jpg結尾的行,“p”表示打印符合條件的行。
五、sed匹配取反
在文本文件中,有時需要匹配不符合特定條件的內容。sed命令可以通過“!”符號實現匹配取反。
# 匹配不含有“example”關鍵詞的行 sed -n '/example/!p' file.txt
上面的命令中,“/example/!”表示匹配不包含“example”關鍵詞的行,“p”表示打印符合條件的行。
六、sed匹配正則替換
在文本文件中,有時需要替換特定的字符串。sed命令可以根據正則表達式進行替換。
# 替換含有“example”關鍵詞的行為“replace”字符串 sed 's/example/replace/g' file.txt
上面的命令中,“s/example/replace/g”表示將含有“example”關鍵詞的行的“example”替換為“replace”,“g”表示全局替換。
七、sed匹配空行
在文本文件中,有時需要匹配空行。sed命令可以根據特定條件匹配相應的內容。
# 匹配空行 sed -n '/^$/p' file.txt
上面的命令中,“/^$/”表示匹配空行,“p”表示打印符合條件的行。
八、sed匹配內變量
在sed命令中,內變量可以方便的反覆使用。將變量保存在內存中,可以通過“&”符號進行引用。
# 將b替換為a,c替換為b,d替換為c echo "bcd" | sed 's/b/a/g;s/c/b/g;s/d/c/g'
上面的命令中,“s/b/a/g”表示將b替換為a,“s/c/b/g”表示將c替換為b,“s/d/c/g”表示將d替換為c。
九、sed匹配行替換
在文本文件中,有時需要替換特定行的內容。sed命令可以根據行數進行匹配。
# 將第2行替換為“Hello World!”字符串 sed '2c\Hello World!' file.txt
上面的命令中,“2c\Hello World!”表示將第2行替換為“Hello World!”字符串。
十、sed匹配任意字符選取
在文本文件中,有時需要匹配任意字符。sed命令可以通過“.”符號進行匹配。
# 匹配包含任意字符的行 sed -n '/./p' file.txt
上面的命令中,“/./”表示匹配包含任意字符的行,“p”表示打印符合條件的行。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/295725.html