Ubuntuで「1」で始まるGrap行

Ubuntuで「1」で始まるGrap行

次のように「1」で始まる行を検索してみました。

ls -1 | grep ^1*

ただし、1 で始まらない行を返します。私がここで何を見逃しているのでしょうか?

答え1

あなたの正規表現はあなたが考えるものを意味しません。 (^)で始まり、1(1)回以上(*)繰り返されるすべての行と一致します。すべての文字列はこの正規表現と一致します。grep '^1'あなたが欲しいものをしてください。

答え2

次を試してみましたか?

 ls -1 | grep "^1"

つまり、*基本的に通知する削除は、対応する式がgrepゼロ個以上表示されることを探します。^1つまり、1 で始まる行と一致するかどうかです。

答え3

これはあなたの質問に対する答えではありませんが、あなたの目標のためのより良い解決策です。

ls -ld 1*

シェルglobを使用してすべてを一覧表示できます1*シェルワイルドカードでは正規表現とは異なる意味を持ちます。

答え4

^1.* は行全体と一致します。または、上記のように、^ 1は行に含まれる文字列を取得します。

さまざまなスタイルの正規表現はさまざまなシンボルを使用して文字を表し、特定のオプションは目的のスタイルを指定します。さまざまなオプションは、行全体、一部のみ一致するか、入力全体を文字列で一致するかを指定します。

関連情報