特定の変数を取得するには、awkを使用してください

特定の変数を取得するには、awkを使用してください

私はこれを持っていますfile.txt

kespaul   pts/14       2001:778:200:180 Fri May 29 11:33 - 16:40  (00:07)
kespaul   sshd         2001:778:200:180 Fri May 29 16:33 - 16:40  (00:07)
algvai    pts/2        2001:778:200:400 Fri May 29 15:02 - 16:02  (00:00)
algvai    sshd         2001:778:200:400 Fri May 29 16:02 - 16:02  (00:00)

開始時間が16だったら、新しくしたいです。だから私の結果は

kespaul   sshd         2001:778:200:180 Fri May 29 16:33 - 16:40  (00:07)
algvai    sshd         2001:778:200:400 Fri May 29 16:02 - 16:02  (00:00)

awkを使用して時間と分の値を取得する方法だけを知っています。

awk -F ' ' '{print $7}' file.txt

だから私はこれを得ました

11:33
16:33
15:02
16:02

答え1

次のように個々のフィールドのパターンマッチングを実行できます。

awk  '$7~/^16/ {print}' file.txt

次に、7番目のフィールドを見て、^16「16で始まる」を意味する正規表現と一致することを確認します。この正規表現と一致する場合にのみ行を印刷します。

答え2

特定のタスクを実行する行を選択できます。あなたの場合:フィールド7の一致を次16:のように実行できる場合:

~$ awk '$7 ~/16:/ {print}' file1.txt
kespaul   sshd         2001:778:200:180 Fri May 29 16:33 - 16:40  (00:07)
algvai    sshd         2001:778:200:400 Fri May 29 16:02 - 16:02  (00:00)

関連情報