ファイル内の g または 0 から 9 までの数字で始まるすべての行を検索します。

ファイル内の g または 0 から 9 までの数字で始まるすべての行を検索します。

ファイル内のgまたは0から9までの数字で始まるすべての行をどのように検索しますか?

誰でもコマンドラインを助けることができますか?試してみましたが、gで始まるとどうしたらいいかわかりますが、gと0〜9で始まるとどうしたらいいかわかりません。

答え1

これは正規表現でgrepを非常に簡単に使用することです。これを行うことができます:

grep -E '^[g0-9]' file.txt

どんな部分が役に立つのかわかりませんが、正規表現をman grep読んで理解することをお勧めします。

次のように-E「実際の」正規表現を有効にする必要があります。grep(詳細は「シェルグロビング」を検索してみてください。)

PS。この特定の検索では、-E副作用なしに無視できます。そうでない場合はお見逃しなく知る無視できます。 (コメントに示すように、一部の人がこの問題に非常に興味があるため、これに言及するだけです。)

答え2

このようなツールは、ブールOR()grepを理解する正規表現を使用します。|

  • 基本正規表現

    grep '^g\|^[0-9]' file
    
  • 拡張正規表現

    grep -E '^(g|[0-9])' file
    
  • Perl互換正規表現

    grep -P '^(g|\d)' file
    

あるいは、他のツールを使用することもできます。

  • sed

    sed -n '/^g/p;/^[0-9]/p' file
    

    または

    sed -En '/^(g|[0-9])/p' file
    
  • awk

    awk '/^g|[0-9]/' file
    
  • perl

    perl -ne 'print if /^(g|\d)/' file
    

関連情報