edテキストエディタを使用して、最初のシンボルが異なるRegExpの最初の単語をキャプチャする方法

edテキストエディタを使用して、最初のシンボルが異なるRegExpの最初の単語をキャプチャする方法

シェルコマンドがあります。

printf '/^PermitRootLogin/\nc\nPermitRootLogin no\n.\nw\nq\n' | ed -s /etc/ssh/sshd_config

文でこのフレーズを使用して、類似しているが#PermitRootLoginコメントPermitRootLoginされていない段落をキャプチャする必要があります。私はedテキストエディタを使用しており、RegExpを使用してそのコマンドのすべてのエントリをキャプチャする方法を見つけようとしています。

このOSにはGNUユーティリティはありません。答えてくれてありがとう!

ベストアンサー1

正規表現はシェルグローブパターンと同じではありません。これは行の先頭に一致し、前のサブ式の0または1(この場合)を表す^?ため、正規表現として有効な意味はありません。^?^

この試み:

grep `^.?SomeString`

説明する:

^           anchors the match to the start of the line
.?          means 0 or 1 of any character
SomeString  match "Somestring"

おすすめ記事