$ cat logfile
1;1472223253;frank;12344;1472224386
2;1472223265;andrew;shop;
3;1472225515;frank;12345;1472225531
4;1472225526;joe;12344;1472225534
1472225000에서 1472226000 사이의 숫자가 포함된 행을 얻으려면 어떻게 해야 합니까?
3;1472225515;frank;12345;1472225531
4;1472225526;joe;12344;1472225534
답변1
awk -F';' '$2 > 1472225000 && $2 < 1472226000' < logfile
awk에게 필드 구분 기호로 세미콜론을 사용하도록 지시한 다음( -F';'
-- 작은 따옴표는 쉘이 세미콜론을 명령 구분 기호로 처리하지 못하도록 하기 위한 것입니다. 이를 사용할 수 있습니다 -F\;
.) 그런 다음 필드 2에 값 사이에 값이 있는 행을 선택합니다. 당신은 제공합니다. 행을 선택한 후 기본 작업은 행을 인쇄하는 것입니다.
솔루션을 다음과 같이 요약하도록 편집되었습니다.어느비교를 위한 현장 자격:
awk -F';' '{
flag=0;
for (i=1;i<=NF;i++) if ($i > 1472225000 && $i < 1472226000) flag=1;
if (flag) print
}' < logfile