2

次のような行を含むファイルがいくつかあります。

vi
vi-sw600dp
ddnki
xhdpi

grep を使用して、行頭に 2 文字があり、その後の文字がダッシュまたは何もない行 (改行) のみに一致させたいと考えています。

したがって、出力は次のようになります。

vi
vi-sw600dp

私はこのようなことを試みます:

grep '^[A-Za-z]\{2\}[-\n]'

2 つの文字 az、AZ、およびダッシュまたは改行で始まる行に一致すると思います。しかし、うまくいきません。\n は改行ではなく文字と見なされたため、次のように入力します。

vi
vi-sw600dp
ddnki

手伝ってくれませんか?ありがとう。

4

1 に答える 1

3

あなたは近くにいます。$の代わりに行末アンカーを使用する必要があります\n$文字グループの一部にすることはできないため、代わりにアトム グループを使用する必要があります。

 grep '^[A-Za-z]\{2\}\(-\|$\)'

または-E

grep -E '^[A-Za-z]{2}(-|$)'
于 2013-02-06T23:31:57.563 に答える