Anda dapat menggunakan perintah sortdengan opsi --unique:
sort -u input-file
Jika Anda ingin menulis hasil ke FILE alih-alih output standar, gunakan opsi --output=FILE:
sort -u input-file -o output-file
Perintah uniqjuga bisa diterapkan. Dalam hal ini, baris yang identik harus konsekuensial, sehingga input harus diurutkan lebih awal - terima kasih kepada @RonJohn untuk catatan ini :
sort input-file | uniq > output-file
Saya suka sortperintah untuk kasus serupa, karena kesederhanaannya, tetapi jika Anda bekerja dengan array yang besar, awkpendekatan dari jawaban John1024 bisa lebih kuat. Berikut ini adalah perbandingan waktu antara pendekatan yang disebutkan, diterapkan pada file (berdasarkan contoh di atas) dengan hampir 5 juta baris:
$ cat input-file | wc -l
20000000
$ TIMEFORMAT=%R
$ time sort -u input-file | wc -l
64
7.495
$ time sort input-file | uniq | wc -l
64
7.703
$ time awk '!a[$0]++' input-file | wc -l # from John1024's answer
64
1.271
$ time datamash rmdup 1 < input-file | wc -l # from αғsнιη's answer
64
0.770
Perbedaan signifikan lainnya adalah yang disebutkan oleh @Ruslan :
sort -uhanya akan mencetak hasil setelah input berakhir, sementara awkperintah ini akan mencetak setiap baris hasil baru dengan cepat (ini mungkin lebih penting untuk input yang disalurkan daripada file).
Berikut ini ilustrasi:

Dalam contoh di atas, loop (ditampilkan di bawah) menghasilkan 500 kombinasi acak, masing-masing dengan panjang tiga karakter, dari huruf AD. Kombinasi ini disalurkan ke awkatau sort.
for i in {1..500}; do cat /dev/urandom | tr -dc A-D | head -c 3; echo; done