다음과 같은 스크립트가 있습니다. 구분 된 필드/값 쌍. 샘플 데이터는 다음과 같습니다 | 사과 = 32.23 | 바나나 = 1232.12 | 포도 = 12312 | 배 = 231 | 포도 = 1231 |더 빠르게 정렬하고 계산하는 방법 cat 파일 | 정렬 | uniq -c
로그 파일에 A, B 또는 C 필드 이름이 몇 번 나타나는지 조사하려고합니다. 필드 목록은 동적이어야합니다. 로그 파일은 각각 500MB 정도의 '큰 크기'이므로 각 파일을 정렬하는 데 시간이 걸립니다. 일단 잘라내어 한 줄에 하나의 필드가있는 파일을 얻으면 더 빨리 계산할 수 있습니까?
cat /bb/logs/$dir/$file.txt | tr -s "|" "\n" | cut -d "=" -f 1 | sort | uniq -c > /data/logs/$dir/$file.txt.count
이 부분이 빠르게 실행된다는 사실을 알고 있습니다. 나는 그것이 일종의 수렁에 빠졌음을 확실히 볼 수있다.
cat /bb/logs/$dir/$file.txt | tr -s "|" "\n" | cut -d "=" -f 1
내가 파일을 정렬 한 후 더 이상
Apple
Banana
Grape
Pear
Grape
물론의 샘플 출력은 다음과 같습니다 컷을 실행하고 계산 한 후 나는 문제는
1 Apple
1 Banana
1 Pear
2 Grape
입니다 얻을 내 실제 데이터 정렬이 너무 오래 걸립니다. 파일 크기를 줄이는 것이 더 빠를 것 같지만 '큰'텍스트 파일의 고유 항목을 계산하는 가장 빠른 방법은 확실하지 않습니다.
포스트는 일부 샘플 데이터와 비트에 뭔가를 게시 할 예정입니다 UR 원하는 오/P – Teja
괜찮 – personalt
.. 그게 잘 될 shud'고양이 파일을보다 빠르게 – Teja