답변:
이것은 작동해야합니다 :
awk -v max=0 '{if($1>max){want=$2; max=$1}}END{print want} ' version.log
-v max=0
세트는 가변 max
하는 0
, 그리고, 라인마다, 제 필드의 현재 값과 비교된다 max
. 더 큰 경우 max
, 첫 번째 필드의 값으로 want
설정되고 현재 행으로 설정됩니다. 프로그램이 전체 파일을 처리하면 현재 값 want
이 인쇄됩니다.
편집하다
나는 awk
솔루션을 더 일찍 테스트하지 않았 으며 그것을 제공하는 것은 정말로 나빴다. 어쨌든 편집 된 버전의 답변이 작동해야하며 (고치 줘서 고맙습니다) 아래도 테스트했습니다.
sort -nrk1,1 filename | head -1 | cut -d ' ' -f3
나는 sort
첫 번째 분야에서 간다,
이제 정렬 후 출력을 파이핑하고 첫 번째 결과를 얻습니다. 결과에서 column1의 숫자가 가장 높은 값을 얻습니다.
이제 마지막 cut
으로 공간으로 지정된 구분 기호로 파이프 -f3
하고 원하는 출력을 인쇄합니다 .
테스팅
cat filename
112030 /opt/oracle/app/oracle/product/11.2.0
121010 /opt/oracle/app/oracle/product/12.1.0
2312 /hello/some/other/path
3423232 /this/is/really/big/number
342 /ok/not/the/maximum/number
9999899 /Max/number
9767 /average/number
이제 위와 같이 입력에 대해 위 명령을 실행하면 출력이 다음과 같이 나타납니다.
/Max/number
sort -nrk1,1 version.log | head -1 |awk '{print $2}’