簡體   English   中英

使用sed替換字符串

[英]Replace a string using sed

我想使用sed將字符串ip_ttl="1"替換為ip_ttl="2"

我試過sed -i "s/ip_ttl="1"/ip_ttl="2"/g" -但它不起作用。

請幫忙!

將sed代碼放在單引號中,因為您的代碼已經包含雙引號。

sed -i 's/ip_ttl="1"/ip_ttl="2"/g' file

如果將代碼放在兩個雙引號中,則sed將在到達另一個雙引號后終止程序。 因此, "在到達1之前,它將視為結束並終止程序。

更新:

如果數字總是變化,那么最好定義與任何數字匹配的模式。

sed -i 's/ip_ttl="[0-9]\+"/ip_ttl="2"/g' file

如果在模式中使用引號,則可以在模式中使用雙引號引起來:

sed -i "s/ip_ttl=\"1\"/ip_ttl=\"2\"/g"

或將整個模式用單引號引起來:

sed -i 's/ip_ttl="1"/ip_ttl="2"/g'

或者,您可以轉義引號

sed -i "s/ip_ttl=\"1\"/ip_ttl=\"2\"/g" file

有時這很有用,因為在要選擇的字符串中同時包含單引號和雙引號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM