[英]How to use regular expression in sed command
我在某些文件中有一些帶有此模式的字符串:
我想用類似的東西代替它們
我發現我可以一次使用sed命令替換它們,但是因為在添加數字之后,我想我必須使用正則表達式來做到這一點。 但我不知道如何。
sed -i.bak -r 's/page-([0-9]+)/apple-\1.html/' file
sed 's/page-\([0-9][0-9]*\)/apple-\1.html/' file > t && mv t file
除sed外,您還可以使用gawk的gensub()
awk '{b=gensub(/page-([0-9]+)/,"apple-\\1.html","g",$0) ;print b }' file
sed -i 's/page-\([0-9]*\)/apple-\1.html/' <filename>
([0-9]*)
捕獲一組數字; 替換字符串中的\\1
引用捕獲並將其添加為替換字符串的一部分。
如果您需要保留文件副本而不進行替換,則可能需要使用-i.backup
東西,或者只是省略-i而是使用I / O重定向方法。
解決問題的另一種方法:
sed -i.bak 's/\(^.*\)\(page-\)\(.*\)/\1apple-\3.html/' Files
在這里,搜索模式是使用引用( \\1
, \\2
, \\3
)存儲和檢索的。
這會起作用
sed 's/$/\.html/g' file.txt
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.