헤더를 유지하는 행 수 계산

헤더를 유지하는 행 수 계산

일부 텍스트 입력에서 특정 줄의 발생 횟수를 계산하는 데 일반적으로 사용하는 관용구는 다음과 같습니다.

… | sort | uniq -c | sort -n

마지막 항목은 sort -n선택적으로 발생 횟수를 기준으로 행을 정렬하는 데 사용됩니다. 그런데 최근 데이터의 처음 세 행이 헤더이고 이를 정렬하고 계산할 때 포함하면 가독성이 크게 떨어지는 상황에 직면했습니다.

입력의 처음 세 줄만 정렬하지 않고(count 필드를 설명하기 위해) 들여쓰기하는 가장 우아한 방법은 무엇입니까?

답변1

이 질문을 작성하는 시점에서 가장 좋은 해결책은 다음과 같습니다.

… | { for i in 1 2 3; do read -r i; printf '        %s\n' "$i"; done;
      sort | uniq -c | sort -n; }

uniq -c따라서 출력은 세 줄을 읽고 8개의 공백으로 들여쓰기하여 인쇄하는 그룹으로 파이프됩니다(줄과 구분 기호의 수를 유지하는 데 사용되는 공간의 양을 나타냄). 그런 다음 나머지 입력을 그룹 To sort및 에 전달합니다 uniq.

위의 내용을 쉘 스크립트로 작성할 수 있을 것 같습니다. 행 번호를 매개변수로 전달하면 이와 같이 사용할 때마다 다시 입력할 필요가 없습니다.

관련 정보