パターンマッチングのためのsedクエリ[閉じる]

パターンマッチングのためのsedクエリ[閉じる]

私のファイルは次のとおりです

cat new:

ALL          ALLOFTHEM    ALL1
OPS     BE2A    OPS1

 ABE    ABE     ABE1

次のsedクエリは結果の最初の行を提供します sed -n '/\([A-Z]\{1,\}\)\1/p' new

ALL          ALLOFTHEM    ALL1

OPSの文字長も1より大きいので、2行目も一致すると思います。

どんなアイデアがありますか?

ベストアンサー1

OPSの文字長も1より大きいので、2行目も一致すると思います。

それでは、2つ以上の連続した大文字の行を一致させたいですか?その場合は、以下を使用してください。

$ sed -n '/[A-Z]\{2,\}/p' new
ALL          ALLOFTHEM    ALL1
OPS     BE2A    OPS1
 ABE    ABE     ABE1


表情がなぜこんなことないの? あなたの正規表現は次のとおりです

\([A-Z]\{1,\}\)\1

これは2つの部分に分かれています。最初のものは\([A-Z]\{1,\}\)一致することです。またはもっと大文字。 2番目の部分は\1前の大文字セットと一致します。つまり、一致させるには、大文字のパターンを(中間文字なしで)繰り返す必要があります。最初の行には大文字Lの後に大文字があるため、最初の行にのみ一致しますL。この順序を含む唯一の行です。

おすすめ記事