's/document.querySelector('.popup').classList.add('active')/document.querySelector('.popup').classList.add('noactive')/' design.js
I’m trying to replace
document.querySelector('.popup').classList.add('active')
by
document.querySelector('.popup').classList.add('noactive')
Advertisement
Answer
You can use
#!/bin/bash
s="document.querySelector('.popup').classList.add('active')"
sed "s/\(document\.querySelector('\.popup')\.classList\.add('\)\(active')\)/1no2/g" <<< "$s"
# => document.querySelector('.popup').classList.add('noactive')
See the online demo. The regex is POSIX BRE compliant and matches
(document.querySelector('.popup').classList.add(')– Group 1 (1): a literaldocument.querySelector('.popup').classList.add('text(active'))– Group 2 (2): a literalactive')text.
Note the capturing groups in a POSIX BRE regex are set with (...). The literal dots need escaping and since the double quoted literal is used, the backslashes are doubled (and no need to escape single quotes).