열 값으로 데이터 필터링

열 값으로 데이터 필터링

열이 (시간)으로 시작 하는 행만 검색하고 싶지만 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)의 세 번째 열이 (^) 03으로 시작하는지 확인합니다. 나머지는 awk 패턴 일치 구문(~ /pattern/)입니다. 이는 또한 grep 사용에 따른 오버헤드를 줄여줍니다(프로그래밍 용어로 2루프 대신 1루프).

답변3

#awk '{print $2 " " $3}' logfile | grep "03:" | uniq -u

관련 정보