응용 프로그램 로그가 있으며 실행 시간이 10000ms를 초과하는 모든 행을 인쇄해야합니다. 아래 샘플에서는 2 행이 10kms를 초과하지 않고 3 행에 실행 시간이 표시되지 않으므로 첫 번째 행만 인쇄됩니다.awk는 열의 조건에 따라 행을 인쇄합니다.
SERVICE_NAME: | API: GetContents | 20160927000511741 | EXECUTION TIME: 10130(ms)
SERVICE_NAME: | API: GetContentsExtend | 20160927000511741 | EXECUTION TIME: 22(ms)
SERVICE_NAME: | API: GetContentsExtended | 20160927000511741 | Current TN: -15698724705531331
나는 파일에 여러 단계
저장 실행 값을 수행하여이 작업을 수행 할 수 있습니다 :
cat input.txt | while read line
do
cat logfile.log | grep $line"(ms)" >> output.txt
done
가 수 같은 로그를 가로 지르는이 입력 파일을 통해
cat logfile.log | grep "EXECUTION TIME:" | awk '{print $NF}' | cut -d "(" -f1 | awk '{if ($1>9999) print $1}' >> input.txt
루프 이것은 아마 1 라이너 명령으로 할 수 있을까요? 내게 힘든 시간을주는 무엇이 실행 시간 가치는 (ms) 후에있다.
임계 값이 1,000 대신에 1,234로 변경되면 정규 표현식과 일치하는 것은 수치 비교와 비교할 때 큰 방법이 아닙니다. –