列が(時間)で始まる行のみを検索したいが、03:
以下のコマンドを使用すると、値にが含まれているすべての行が表示されます03
。以下は例です。ファイルのデータが非常に大きいです。
awk '{print $2 " " $3}' logfile | grep "03:"
データ:
05 00:03:12 0.05
05 00:28:03 0.05
05 00:33:12 0.09
05 03:03:12 0.09
05 03:08:12 0.05
05 03:13:12 0.05
05 03:18:12 0.05
05 03:23:12 0.027
答え1
サンプルデータなど、時間の前に常にスペースがある場合は、次のものを使用できますgrep
。
grep " 03:" file
答え2
awk '$3 ~ /^03/ {print $2 " " $3}' logfile
$3 ~ /^03/ は、入力ファイル ($3) の 3 番目の列が (^) 03 で始まることを確認します。残りはawkパターン一致構文(〜/ pattern /)です。これにより、grepの使用によるオーバーヘッドも削減されます(プログラミング用語では2ループではなく1ループ)。
答え3
#awk '{print $2 " " $3}' logfile | grep "03:" | uniq -u