私は読みやすくするためにログファイルをクリーンアップしようとしています-私のニーズに合わせて不必要なものがたくさんあります-私は基本的にsshd [xxxx]を置換する必要があります。何もない。既知の文字列を置き換えることはできますが、この場合にsedワイルドカードを実行する方法はわかりません。
私は読みやすくするためにログファイルをクリーンアップしようとしています-私のニーズに合わせて不必要なものがたくさんあります-私は基本的にsshd [xxxx]を置換する必要があります。何もない。既知の文字列を置き換えることはできますが、この場合にsedワイルドカードを実行する方法はわかりません。
回答:
あなたは、内部のすべての数字を何も置き換えないことを探しています。番号を選択するには、範囲を使用できます。ここで、任意の数字と一致し、その前の1つ以上を意味します。sshd
[]
[0-9]\+
[0-9]
\+
したがって、あなたの場合、数字をゼロに置き換える正規表現は
sed -r s/\[[0-9]\+\]/\[\]/
ここで、-r
上記のような拡張正規表現が有効になります。\[
そして\]
ちょうど脱出している[
と、]
そう、彼らはによって解釈されませんsed
。
以下のような正規表現の演算子のために\+
見てい本節でgawk
のように文字のリストについては、マニュアルを[0-9]
参照して、このセクションを -あなたが見るもののほとんどをするが適用されsed
、同様。
sed -r s/\[[0-9]\+\]/\[\]/
[]を番号なしで保持するために、である必要はありませんか?
-r
コマンドを引用する場合は、省略できます。両方を行う(-r
コマンドを使用して引用する)場合は、+のエスケープを省略できます。sed 's/\[[0-9]\+\]/\[\]/'
またはsed -r 's/\[[0-9]+\]/\[\]/'
、グループ化-r
されたかっこがある場合、かっこをエスケープする必要がないため、引用符を付けて使用すると、いくつかの文字を節約し、読みやすくすることができます。