我正在尝试编写一个简短的bash脚本,用于从文件中删除CSS注释(因此任何文本包括和介于/ *和* /之间),但是它需要忽略具有字符串“not”或“NOT”的行“在里面。
这是我到目前为止所得到的:
sed '\_(not|NOT)_!s_/\*_,_\*/_g' $1
但是,在运行脚本时,它将返回错误:
sed: -e expression #1, char 22: unknown option to `s'
我的第一个假设是使用正斜杠导致问题,尽管转义字符,所以我使用下划线作为分隔符。但是,这还没有解决我的问题。
任何建议将不胜感激!感谢。
答案 0 :(得分:0)
我不确定这个部分到底了!但是s的语法是s_old_new_
,可选地后跟一些选项。
你在那里有一个额外的_。或者你可能意味着s_/\*.*/\*__g
用任何东西替换评论。
建议:用小块构建它。例如,尝试剥离字母序列,测试它,然后添加功能以跳过“不”行,然后将其删除评论。
答案 1 :(得分:0)
我用这个解决了这个问题:
sed -e '/not /I!s/\/\*.*\*\///g' $1
找出你可以使用的不区分大小写的标志,它会选择“not”和“NOT”。我还想出了找到所有注释并替换为空的正确语法。
感谢大家的帮助。