sed

sed - Commenting a line matching a specific string AND that is not already commented out

*爱你&永不变心* 提交于 2020-11-25 06:19:30
问题 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? 回答1: 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

sed - Commenting a line matching a specific string AND that is not already commented out

我与影子孤独终老i 提交于 2020-11-25 06:14:19
问题 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? 回答1: 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