Saya perlu menghapus duplikat baris dari file teks, sederhana menggunakan Linux
cat file.txt |sort | uniq
saat file.txt berisi
aaa
bbb
aaa
ccc
Ini akan menampilkan
aaa
bbb
ccc
Apakah ada yang setara dengan Windows? atau bagaimana melakukan ini dengan cara Windows?
sort -u file.txt
Jawaban:
The
Sort-Object
cmdlet di PowerShell mendukung-Unique
saklar yang melakukan hal yang sama sepertiuniq
:Tentu saja, karena keberadaan alias di PowerShell, Anda juga dapat menulis:
Selain itu, ada
/unique
peralihan tidak berdokumen padasort.exe
Windows 10, jadi, ini harus berfungsi di Command Prompt:sumber
sort.exe
) mendukung ini; sepertinya fitur built-in PowerShell.type file.txt | sort /unique
bekerja dengan tidak berdokumen beralih/unique
darisort.exe
utilitas (setidaknya pada Windows 10). Di sisi lain, Anda benar bahwa contoh yang diberikan adalah PowerShellGet-Content file.txt | Sort-Object -unique
.sort /unique
kesalahan denganInvalid switch.
pada Windows 7 Enterprise.Ada port uniq yang bekerja secara identik dengan versi gnu / coreutils. Saya pribadi menggunakan variasi dari GOW tetapi git untuk windows memiliki versi yang jauh lebih baru . Cygwin tidak diperlukan meskipun untuk yang terakhir Anda perlu mencari di / usr / bin
Karena paket-paket ini juga mengandung cat, sortir dan uniq - alur kerja Anda sebagian besar harus identik, dan
cat file.txt |sort | uniq
sebagian besar akan berfungsi secara identiksumber
Anda dapat dengan mudah menulis perintah "uniq" sendiri. Simpan ini dalam file batch "uniq.cmd" di suatu tempat di% path% Anda dapat menemukannya (misalnya dalam% windir% \ system32). Versi ini TIDAK peka huruf besar-kecil:
Ini berfungsi dengan "uniq mytextfile" serta "cat mytextfile | uniq"; karena semua input dan argumen hanya diteruskan ke perintah sortir.
Dimulai dengan Windows 7, Anda mungkin menginginkan versi yang benar-benar case-sensitif (perbedaannya adalah saklar tidak berdokumen "sort / C" dan no "if / i"):
sumber
/?
,ON
,one ^ caret
ataubang!
. Tapi itu bisa diselesaikan dengan menggunakan teknik ekspansi toggling tertunda danecho(
lihat: Dostips: ECHO. GAGAL untuk memberikan teks atau baris kosongTambahan untuk jawaban Yu Jiaao. Anda dapat memanggil
sort-object
cmdlet PowerShell di command prompt seperti:sumber