Sed
如何使用 sed 替換字元串中的值但保持字元串完整
如何使用 sed 替換字元串中的值但保持字元串完整?
例如
echo "01XX1234"
我正在尋找
XX
用十六進制值替換01
並1234
保持原樣。我已經嘗試了所有我能想到的組合,但我sed
正在變得更好。我可以這樣做,但有沒有更簡單的方法?
echo "01XX1234" | sed -n 's/\(01..1234\)/01AB1234/g'
sed
只會替換字元串的匹配子字元串。$ echo '01XX1234' | sed 's/XX/AF/' 01AF1234
如果您打算始終替換第三個和第四個字元但保持第一個和第二個不變,您可以使用:
$ echo '01XX1234' | sed 's/\(.\{2\}\).\{2\}/\1AF/' 01AF1234
\{2\}
表示出現兩次前面的字元(在這種情況下.
:任何字元)\(...\)
括號用於創建匹配組;您可以稍後在模式或替換字元串中引用匹配的子字元串\1
指第一個匹配的子字元串(在這種情況下,即“01”)