최대 열 수 기록 문제
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 -n3
3
-> 결과에서 첫 번째 행 까지만 필터링 (-n 3)sed 's/://'
-> 첫 번째:
항목 삭제
답변2
요구 사항을 올바르게 이해한다고 가정하면 다음과 같이 작동합니다.
awk 'BEGIN {FS=OFS=":"} NF > 2 {print $1$2,$3}' test.txt
이렇게 하면 열이 세 개 이상인 모든 행이 인쇄되고 처음 두 열이 하나의 열로 연결됩니다.