Sed

在 sed 中匹配組

  • July 29, 2020

我正在嘗試使用 sed 和擷取組以程式方式將字元串替換為字元串,其中concat(x,y)和表示任意數字。xy``x``y

我認為以下方法可以解決問題:

echo "concat(3,2)" | sed 's!concat(\(\d\),\(\d\))!"\1\2"!'

我基本上是在嘗試擷取一組中的每個數字並並排輸出兩組。我不明白我從這個命令得到的輸出:

concat(3,2)

為什麼我的sed命令沒有任何效果?我不知道這有多相關,但我在 Mac 上。

非常感謝 !

預設情況下sed只理解基本的正則表達式,所以你必須使用[0-9]而不是\d

$ echo "concat(3,2)" | sed 's!concat(\([0-9]\),\([0-9]\))!"\1\2"!'
"32"

引用自:https://unix.stackexchange.com/questions/600951