[완료] 여러 파일에서 최대값 뽑기

sayhappy의 이미지

제가 원하는 것은 아래처럼 로그 파일이 있을 때, 각 파일의 최대값을 얻어내는 쉘 명령어 입니다.
각 파일의 형식이 두 컬럼으로 되어 있는데, 그중 두번째 컬럼의 최대값을 뽑으려고 합니다.
그런데..
아래 제가 써놓은 명령어는 모든 로그 파일 중에 최대값만 뽑아내는 듯합니다.
ls 에서 한 개씩 파일을 넘길 수 있으면 될 것 같은데, 한 줄 할 수 있는 방법은 없는 건가요?
for in을 써야 하는것인지요?

# ls run-[0-9].log
run-0.log run-2.log run-4.log run-6.log run-8.log
run-1.log run-3.log run-5.log run-7.log run-9.log

#ls run-[0-9].log | xargs cut -f2 - | sort | tail -n 1

익명 사용자의 이미지

해보지는 않았지만:

find . -name "*.log" -exec cut -f2 {} \; | sort | tail -n 1

한번 해보세요.

sayhappy의 이미지

한 줄로 해보고 싶었는데..

pung96의 이미지

안될리가 없죠.

본문에 답이 있네요. for in을 쓰시면 한줄에 됩니다.^^

find 를 쓸경우에는 exec 에 pipe를 어떻게 넣어야 할까요. 그건 모르겠습니다.
그러나. 이경우는 안넣으면 됩니다. awk를 사용해서 최대값을 찾아서 END블럭에서 반환하면 될것 같습니다.

예제는 지금 쉘이 없는 관계로 생략^^

jg의 이미지

$ grep -H "" run-[0-9].log | sort -n -r -k 2 | sort -t: -n -k 1,1 -u

$Myoungjin_JEON=@@=qw^rekcaH lreP rehtonA tsuJ^;$|++;{$i=$like=pop@@;unshift@@,$i;$~=18-length$i;print"\r[","~"x abs,(scalar reverse$i),"~"x($~-abs),"]"and select$good,$day,$mate,1/$~for 0..$~,-$~+1..-1;redo}