正規表現 - 文字ペアのみを検索

正規表現 - 文字ペアのみを検索

次のデータがあります。 「bb」のみを含む行だけを抽出したいのです。 「b」や「bbb」ではなく、単に「bb」です。

abb
abbb
aabbcc
aabab
abbbbc

次のコマンドの組み合わせを使用するとき:

cat file1 | grep "bb[^b]

私が得る出力はサンプルファイルのすべての行です。

abb
abbb
aabbcc
aabab
abbbbc

私が望む期待は -:("bb" を含む行のみ) です。

abb
aabbcc

これを達成できる正規表現は何ですか?

アバブ無効です。以下を含む行のみを探しています。BBそして他のモードはありません。第二。行には2つの連続した内容のみが含まれています。第二そして他のb文字はまったくありません。

ベストアンサー1

最も直接的な方法は次のとおりです。

grep '^[^b]*bb[^b]*$' file1

ところで、grepこのようなコマンドがファイル名引数を受け入れる方が効率的です。

grep '^[^b]*bb[^b]*$' file1

または

grep '^[^b]*bb[^b]*$' < file1

(後者はファイルパラメータがサポートされていない場合でも機能します)

比較する

cat file1 | grep '^[^b]*bb[^b]*$'

そして、より柔軟な傾向があります。

おすすめ記事