如何用sed去除#前面的#?

时间:2017-11-19 11:43:08

标签: ubuntu sed

我正在尝试取消(删除#)行sql

session {
        radutmp

        #
        #  See "Simultaneous Use Checking Queries" in sql.conf
#       sql
}

这是我尝试过的:

sed -i 's/#       sql/        sql/' /etc/freeradius/sites-available/inner-tunnel

但不知何故,空间没有正确计算。它找不到# sql

2 个答案:

答案 0 :(得分:0)

melpomene之后,输入文件看起来像是使用制表符而不是空格。您可以使用包含制表符和空格的[:blank:]字符类:

sed '/#[[:blank:]]*sql/s/#//' file

该命令匹配序列为#的行,零个或多个空格后跟术语sql,并删除第一个#

答案 1 :(得分:0)

使用sed -E选项:

> sed -E 's/#(\s+sql)/\1/i' /etc/freeradius/sites-available/inner-tunnel
                      ^ holds matching chunk from within first capturing group

\s表示表示[\t\n\r\f\v ]个字符的字符类。 \s+确保#

后面应该有某种空格