GNU/Linux >> Linux の 問題 >  >> Linux

grep 抽出番号範囲

「代替」正規表現トークン | が必要です 「これかあれか」と言う:

grep -E '2019-(09|10)-' file

正規表現が X では機能するのに Y では機能しないのはなぜですか? を参照してください。正規表現トークンと正規表現クラス (基本、拡張など) の背景について説明します。


grep は数値の扱いが苦手で、数値を算術的に比較する方法を知りません。そのためには、awk や Perl などを使用することをお勧めします。 09 を列挙するのは簡単なので、ここではあまり重要ではありません。 と 10 、しかし、97 から 123 までの範囲のようなものがあると、さらに悪化します。

例えば。これは、年、月、日を数値として選択し、日が 27 から 31 の間の行を出力します:

perl -ne 'print if /Last Password Change: ([0-9]+)-([0-9]+)-([0-9]+)/ && $3 >= 27 && $3 <= 31' < file

正規表現は主に grep ERE に似ており、括弧は対応する部分を変数 $1 に取り込みます 、 $2$3 など


Linux
  1. 正規表現:すべてをまとめる

  2. Grepを使用して発生の総数をカウントしますか?

  3. 正規表現の定義?

  1. 10 の例を含む grep コマンドの正規表現 – パート I

  2. シェル内の範囲間の乱数

  3. Grep:1 行あたりの一致数をカウントする

  1. grep パターンで \b はどういう意味ですか?

  2. Bashで二重文字を見つけるための正規表現

  3. ポート 80 のアクティブな接続数を確認しますか?