私はこれを持っています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)