[英]BASH: replace groups in a string using sed
內容包含從文件讀取的字符串。 我要做的是用捕獲組和換行符替換捕獲組。 但是我不知道如何。
這有效
contents=$(echo $contents | sed -e 's|/$(#.*)\n||g')
但這不是
contents=$(echo $contents | sed -e 's|/$(#.*)\n|\1\n|g')
ERROR: sed: -e expression #1, char 18: invalid reference \1 on `s' command's RHS
而且這也不
contents=$(echo $contents | sed -er 's|/$(#.*)\n|\1\n|g')
ERROR: sed: can't read s|/$(#.*)\n|\1\n|g: No such file or directory
如果content是多行,則$content
必須在雙引號之間,以避免分裂: $
在正則表達式中有特殊含義,它是行錨的結尾,必須轉義。 組括號必須轉義( -r
擴展正則表達式除外)。 \\n
不匹配$
也可以代替。
content=$(echo "$content"|sed -e 's|/\$\(#.*\)$|\1|g')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.