sed - Commenting a line matching a specific string AND that is not already commented out
regex, sed
Solution
Assuming you don't have any lines with multiple `#`s this would work:
sed -e '/BBB/ s/^#*/#/' -i file
Note: you don't need /g since you are doing at most one substitution per line.
Problem
I have the following test file ``` AAA BBB CCC ``` Using the following sed I can comment out the BBB line. ``` # sed -e '/BBB/s/^/#/g' -i file ``` I'd like to only comment out the line if it does not already has a # at the begining. ``` # sed -e '/^#/! /BBB/s/^/#/g' file sed: -e expression #1, char 7: unknown command: `/' ``` Any ideas how I can achieve this?