4
這個例子來自devstack腳本。如何使用sed替換ini文件中的值?
sed -i -e "/^\[$section\]/,/^\[.*\]/ s|^\($option[ \t]*=[ \t]*\).*$|\1$value|" "$file"
任何人都可以解釋這sed
取代命令如何工作?
我瞭解一些基本的sed
機制,但這對我來說似乎很複雜。
這個例子來自devstack腳本。如何使用sed替換ini文件中的值?
sed -i -e "/^\[$section\]/,/^\[.*\]/ s|^\($option[ \t]*=[ \t]*\).*$|\1$value|" "$file"
任何人都可以解釋這sed
取代命令如何工作?
我瞭解一些基本的sed
機制,但這對我來說似乎很複雜。
-i選項就地編輯文件$文件。
爲一系列行匹配的語法/型式1 /,/ PATTERN2/ 該腳本用於從含有在$部分的字符的開始處的第一行的行的範圍搜索該行(注意使用插入符)指向^ [。*],表示至少包含一個字符的行。
換人對於符合上述範圍指定其所有行中,進行替換命令S /圖案/更換/命令。 請注意使用|劃分替代命令 - s | pattern | replacement |。
匹配的模式使用插入符號(^)從行首開始。
部分(....)位於替換部分,稱爲\ 1。
在(...)部分是字符串$部分,後面可能還有一些空格或製表符 - [\ t] *表示沒有或多個製表符或空格。後面跟着一個'='字符,可能有更多空格或製表符。 。* $將匹配任意數量的字符到行尾。
替換\ 1 $值是前面提到的包含(...)的部分,後面是$ value中的值。
HTH!
但不是分組和/或替換錯! 'key = oldValue'將被替換爲'key = oldValueNewValue' – mefiX 2014-01-15 09:23:10