나는 이것을 가지고있다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)