![grep을 사용하여 텍스트 파일에서 가장 많이 발생하는 연도를 찾아 해당 연도를 출력하는 방법은 무엇입니까? [복사]](https://linux55.com/image/213394/grep%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%ED%85%8D%EC%8A%A4%ED%8A%B8%20%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C%20%EA%B0%80%EC%9E%A5%20%EB%A7%8E%EC%9D%B4%20%EB%B0%9C%EC%83%9D%ED%95%98%EB%8A%94%20%EC%97%B0%EB%8F%84%EB%A5%BC%20%EC%B0%BE%EC%95%84%20%ED%95%B4%EB%8B%B9%20%EC%97%B0%EB%8F%84%EB%A5%BC%20%EC%B6%9C%EB%A0%A5%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
내가 사용하고 있는 텍스트 파일에는 가장 많이 팔린 노래가 포함되어 있습니다. 그 구조는 다음과 같습니다:
Single,Artist,Record label,Released,Chart,Traditional sales peak,
몇 가지 예시 라인은 다음과 같습니다:
Imagine,John Lennon,Apple,Oct-75,1,1714351
Uptown Funk,Mark Ronson featuring Bruno Mars,RCA,Dec-14,1,1647310
Wonderwall,Oasis,Creation,Oct-95,2,1502270
파일의 클릭수가 어느 연도에 발생했는지 알아내려고 합니다.
예를 들어 보다 효율적인 명령을 사용할 수 있다는 것을 알고 있지만 awk
이를 수행하려면 을 사용해야 합니다 grep
.
도움이나 안내를 주시면 감사하겠습니다 :)
답변1
여기 있습니다:
$ grep -oP '^([^,]+,){3}\w+-\K\d+' file | sort | uniq -c
1 14
1 75
1 95
하지만 수세기가 없는 한 복잡한 프로세스/휴리스틱이 필요한 이상한 결과가 있습니다.