Câu trả lời:
Tôi đã hiểu rồi; một trong uniq
các tùy chọn là -c
, cho "dòng tiền tố theo số lần xuất hiện":
$ uniq -c
sort | uniq
A \ A \ A \ B \ A \ CC
, đầu ra của chỉ uniq -c
hiển thị A 3
và hiển thị sau đó A 1
. Sắp xếp trước, sẽ đảm bảo tất cả các dòng giống hệt nhau được nhóm lại với nhau
Tôi chỉ đến đây với một vấn đề tương tự. Từ điều này, tôi quản lý để đưa ra một lệnh cao cấp hơn một chút, mà tôi hy vọng là hữu ích cho những người khác.
Như Steven D đã nói trong các ý kiến trên uniq
chỉ tính các dòng lặp lại liền kề, vì vậy bạn cần sắp xếp các dòng trước. Sau đó, chúng tôi tìm thấy các dòng duy nhất sau đó sắp xếp lại để các dòng xuất hiện nhiều nhất ở trên cùng.
sort file.txt | uniq -c | sort -nr > output.txt
Đầu ra được chuyển hướng vào tập tin output.txt
. Nếu bạn chỉ muốn xem kết quả trên dòng lệnh, hãy xóa chuyển hướng và thay đổi lệnh cuối cùng để sort -n
dòng phổ biến nhất sẽ ở dưới cùng, tức là chắc chắn vẫn còn trên màn hình.
cat file.txt | sort
bằng chỉ sort file.txt
. :)
cat
bằng một thứ thú vị hơn. Vì, bạn biết đấy, không có cat
.
< file.txt sort | uniq -c
. Điều này dễ dàng để chỉnh sửa, và vẫn tránh được những thứ không cần thiết cat
.
uniq -c filename.txt | sed 's/[^0-9]*\\([0-9]\+\\) \\(.*\\)/\2 \1/'