그래서 도시로 구성된 열이 포함된 큰 파일이 있습니다. 각 도시의 총 인스턴스 수를 찾아 새 파일에 표시하는 프로그램을 작성하고 싶습니다. 어떻게 해야 하나요?
이건 예시이고 이보다 더 많은 값이 있습니다
파일이 다음과 같다면
City
Manhattan
Cork
Manhattan
Chennai
Chennai
출력은 어떻게 보여야 할까요?
City
Manhattan 2
Cork 1
Chennai 2
답변1
다음을 사용하십시오 datamash
.
datamash -g1 -s -H count 1 < infile
산출:
GroupBy(City) count(City)
Chennai 2
Cork 1
Manhattan 2
답변2
Linux 내장 명령을 사용 sort
하고 다음을 수행하십시오 uniq
.
cat DATAFILE | sort | uniq --count
그러면 다음과 같은 내용이 제공됩니다.
2 Chennai
1 City
1 Cork
2 Manhattan
설명하다:uniq
이는 일반적으로 중복 행을 제거하고 단일 인스턴스만 남기는 명령을 사용합니다 . 추가 반복 횟수를 내보내는 옵션 "--count"를 사용하세요. 이것이 작동 하려면 uniq
행을 정렬해야 합니다. 그렇지 않으면 필요에 따라 중복 항목이 연속 행에 표시되지 않습니다. sort
이는 정확히 행을 알파벳순으로 정렬하는 작업을 수행합니다.
다른 열 순서로 필요합니까? 첫 번째 줄을 무시해야 합니까? 그렇다면 도시 이름에 두 개 이상의 단어가 포함될 수 있는지도 알려주시기 바랍니다.