2つの特定の数字の間の数字をファイルから検索します。

2つの特定の数字の間の数字をファイルから検索します。
$ cat logfile
1;1472223253;frank;12344;1472224386
2;1472223265;andrew;shop;
3;1472225515;frank;12345;1472225531
4;1472225526;joe;12344;1472225534

1472225000から1472226000までの数字を含む行を取得するにはどうすればよいですか?

3;1472225515;frank;12345;1472225531
4;1472225526;joe;12344;1472225534

ベストアンサー1

awk -F';' '$2 > 1472225000 && $2 < 1472226000' < logfile

awkにフィールド区切り文字としてセミコロンを使用するように指示した後(-F';'- 単一引用符は、シェルがセミコロンをコマンド区切り文字として処理しないようにするためのものです。-F\;)それをフィールド2の値の間の値ある行を選択します。あなたは提供します。行を選択した後の基本的な作業は、行を印刷することです。

ソリューションを次のように要約するように編集されました。どの比較のためのフィールド資格:

awk -F';' '{ 
  flag=0; 
  for (i=1;i<=NF;i++) if ($i > 1472225000 && $i < 1472226000) flag=1; 
  if (flag) print
}' < logfile

おすすめ記事