여러 파일에서 특정 문자열 뒤의 최대 수 찾기

여러 파일에서 특정 문자열 뒤의 최대 수 찾기

각 파일에는 비슷한 내용이 있습니다.

number 1:
asdfa11sdfsadf
number 2:
asdfa12sdfsadf
number 1:
asdfa1sdfsadf
number 3:
asdfa33sdfsadf

반품

3 or number 3: are equally good.

시험을 마친:

max="$( awk -F":" 'BEGIN{max=0}{if(($2)>max)  max=$2}END {print max}' file)"
printf "%d\n" "$max"

33은 반환하지만 3은 반환하지 않습니다.

또한 시도했습니다:

grep -o 'number\s[0-9]*' file1.txt file2.txt | sort -nr | head -1

파일 입력 계층 구조를 기반으로 가장 높은 숫자를 반환합니다(가장 높은 숫자가 file1의 숫자 8인 경우에도 file2에서 가장 높은 숫자만 찾습니다.)

답변1

마지막 명령을 사용할 수 있지만 -ho대신 grep을 사용하십시오 -o.

grep -ho 'number\s[0-9]*' file1.txt file2.txt | sort -nr | head -1

-h문제를 일으키는 결과에서 파일 이름이 제거됩니다.

관련 정보