私は読みやすくするためにログファイルをクリーンアップしようとしています-私のニーズに合わせて不必要なものがたくさんあります-私は基本的に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されたかっこがある場合、かっこをエスケープする必要がないため、引用符を付けて使用すると、いくつかの文字を節約し、読みやすくすることができます。