지금까지의 코드는 다음과 같습니다.
grep -rc 'Author' $1
디렉터리의 모든 파일을 인쇄하고 인수로 사용합니다. 그러나 출력을 어떻게 정렬합니까(예:):
- data1:43
- data2:56
- data3:14
가장 높은 것부터 가장 낮은 것까지 목록을 입력하세요.
- data2:56
- data1:43
- data3:14
답변1
grep -rc 'Author' $1 | sort -t : -k 2,2n
특정 행에서 키워드가 몇 번 반복되더라도 키워드가 포함된 행 수를 원하는 경우 괜찮습니다. 실제 단어 수를 원하면 이것을 사용해야합니다
echo $1:$(grep -o 'Author' $1|wc -l) | sort -t : -k 2,2n
grep에 대한 -o 옵션은 grep의 Gnu 버전에서 사용할 수 있을 가능성이 높습니다. 이전 레거시 시스템에서 제공하는 grep을 사용하는 경우 사용하지 못할 수 있습니다. 간단히 알려드리겠습니다.
답변2
높은 것부터 낮은 것 순으로 정렬:
grep -rc 'Author' $1 | sort -r -t ':' -k2,2n
-r
가장 높은 것부터 가장 낮은 것까지 역순으로 정렬합니다.-t
구분자를 소개합니다.-k
정렬할 필드를 소개합니다. 필드는 정의된 구분 기호로 구분됩니다-t
. 이 구문은 2와 2 사이의 모든 필드(즉, 두 번째 필드만)를 기준으로 정렬하는 것을 의미합니다. 사전 편찬 순서 대신 숫자 값을 사용하는 방법입니다n
(예: 바로10
뒤에 오는9
것이 아니라 뒤에 옵니다1
).