0
내 입력 파일에서 특정 라인을 추출하려고 가진 값으로 라인을 따기 :높은 값
2.txt
1 10 11 A L X3 -1.1
1 10 11 A L X3 -21.1
1 10 11 A L X1 1.1
1 13 21 A T X3 -2.1
3 11 12 A T X2 -3.1
3 11 12 K T X2 7.1
4 11 12 A T X7 -8.1
4 11 12 C T X7 -8.1
4 11 12 C T X7 11.1
4 11 12 C T X7 -11.1
4 11 12 C T X1 -11.1
4 11 12 C T X7 41.1
내가 처음 5 열을 공유하는 선을 추출하기 위해 노력하고 있지만, 지난 두 다른 오전 또한 처음 5 개 항목을 공유하지 않는 다른 항목도 있습니다.
그런 다음 마지막 열의 절대 값이 가장 높은 라인을 유지하려고합니다. glenn jackman에 속하는 최소값을 가진 라인을 얻기위한 awk 코드를 가지고 있으며, 더 높은 절대 값을 가진 라인을 추출하기 위해 그의 솔루션을 향상 시키려고했지만, 작동하지 않았습니다.
내 예상 출력은 :
1 10 11 A L X3 21.1
1 10 11 A L X1 1.1
3 11 12 A T X2 3.1
3 11 12 K T X2 7.1
4 11 12 A T X7 8.1
4 11 12 C T X7 41.1
내 시험 AWK입니다
awk ' {key = $1 FS $2 FS $3 FS $4 FS $5} !(key in abs) || $NF < abs[sqrt(key^2)] {abs[key] = $NF; line[key] = $0} END {for (key in line) print line[key]}' 2.txt | sort
음수에서 최소 음수와 라인 출력 (안 포지티브로해야) 및 최대 양수를 인쇄하지 않습니다.
1 10 11 A L X3 -21.1
1 13 21 A T X3 -2.1
3 11 12 A T X2 -3.1
3 11 12 K T X2 7.1
4 11 12 A T X7 -8.1
4 11 12 C T X1 -11.1
귀하의 도움에 감사드립니다 !!
감사합니다 ..하지만 때로는 마지막 열 하강을 주문 나던이 코드입니다. 이유가 무엇일까요? – bapors
'-k7nr'은 숫자로 내림차순으로 7 번째 필드에 대한 것이지만 첫 번째 행은 키 (처음 5 개 필드)로 정렬되고 첫 번째 항목은 선택됩니다 (항상 같은 키에 대해 가장 커야합니다). 최종 결과는 예제에서와 같이 마지막 필드별로 정렬되지 않습니다. 아마도 내가 예를 들어 데이터를 명확하게 이해할 것이라고 오해했을 것입니다. – karakfa
나는이 문제를 발견했다. 0.002는 0.002가 총 4 자리이며 0.19는 3이된다. – bapors