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-tw/n/295725.html