최대 열 수 기록 문제

최대 열 수 기록 문제

최대 열 수 기록 문제

test.txt다음 내용이 포함된 파일이 있습니다 .

1:2:3
123:5
34589:5:0
34567:8:7
781:9:09

test.txt이 파일에서 다음 출력을 얻을 수 있도록 도와주실 수 있나요 ?

345895:0
345678:7
7819:09

설명: 다음 행에는 가장 큰 숫자 열 i,g가 포함되어 있습니다. 3. 삭제:

345895:0
345678:7
7819:09

답변1

해결책은 다음과 같습니다.

파일 이름이 다음과 같다고 가정합니다.test.txt

cat test.txt | sort -nr | head -n 3 | sed 's/://'

파일 내용이 다음과 같다고 가정합니다.

1:2:3
123:5
34589:5:0
34567:8:7
781:9:09

결과는 다음과 같습니다.

345895:0
345678:7
781:9:09

설명하다


  • cat test.txt-> 파일 내용을 stdout으로 인쇄하기만 하면 됩니다.
  • sort -nr-> 기호를 가정하여 데이터를 정렬합니다 number(-N), 역순으로 (-아르 자형)
  • head -n33-> 결과에서 첫 번째 행 까지만 필터링 (-n 3)
  • sed 's/://'-> 첫 번째 :항목 삭제

답변2

요구 사항을 올바르게 이해한다고 가정하면 다음과 같이 작동합니다.

awk 'BEGIN {FS=OFS=":"} NF > 2 {print $1$2,$3}' test.txt

이렇게 하면 열이 세 개 이상인 모든 행이 인쇄되고 처음 두 열이 하나의 열로 연결됩니다.

관련 정보