2017-11-19 10 views
3

私は行番号sqlのコメントを外しています(削除しています)。sedで行頭の#を削除するには?

session { 
     radutmp 

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

これは私が試したものです:

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

を何とかスペースが正しく計算されていません。 # sqlが見つかりません。

+0

スペースでタブではないですか? – melpomene

答えて

0

melpomeneに続いて、入力ファイルが空白ではなくタブを使用しているようです。あなたはタブとスペースの両方が含ま[:blank:]文字クラスを使用することができます。

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

コマンドはシーケンス#、用語sqlに続くゼロ以上のスペースとラインと一致し、SEDを使用して最初の#

+1

'[[:blank:]]'は、スペースやタブに一致するのに十分です。 '[[:space:]]'はスペース、タブ、改行、キャリッジリターン、フォームフィード、垂直タブと一致します。 – SLePort

+0

これを '[:blank:]'に変更しました。 – hek2mgl

0

を削除します-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+次のようなスペースがあることを確認してください。#

関連する問題