Sto realizzando un dizionario delle password più utilizzate, quelle più diffuse o più utilizzate dagli utenti (... Non chiedere perché ... HAHAHA), per questo sto prendendo testo da altri dizionari ecc., ma mi trovo nella situazione in cui ci sono molte password duplicate e devo eliminare le righe duplicate.
Cioè, ad esempio ... abbiamo il seguente file: pass.txt
E il suo contenuto è:
asdasd
lola
amore
asdasd
finestre
Admin
linux
asdasd
amore
Come si vede, abbiamo ripetuto «amore"E"asdasd«, Quest'ultimo 3 volte. Come rimuovere le linee duplicate?
Farlo è semplice, con questo comando:
cat pass.txt | sort | uniq > pass-listos.txt
Questo genererà un file chiamato pass-ready.txt che conterrà:
Admin
asdasd
linux
lola
amore
finestre
Quello che fa il comando è MOLTO semplice ...
- gatto pass.txt - »Elenca il contenuto del file.
- sorta - »Ordinare il contenuto in ordine alfabetico.
- uniq - »Elimina le righe duplicate.
- > pass-ready.txt - »Il risultato dei comandi precedenti, inseriscilo nel file pass-ready.txt (che, poiché non esiste, lo creerà)
È così semplice ... Ho appena scoperto che il comando sorta sì, è molto buono ... ma, insieme a uniq, sono un gioiello d'arte 😀
Spero tu sia stato utile.
saluti
Puoi anche usare sort -u.
Congratulazioni per il blog, lo adoro!
Si, come no.
Niente, grazie mille per aver commentato 😀
Benvenuto 😉
saluti
Il problema è che cambia l'ordine delle parole, funziona ... ma alla fine il risultato differisce molto dall'originale nell'ordine (che forse in alcuni casi è importante)
Sì, in effetti, questo ordina le parole in ordine alfabetico, quindi se il contenuto era necessario SENZA variazioni, questa soluzione non è quella ideale.
Non scherzare, e se non metti il comando di ordinamento? per favore pensa ancora un po 'e non masticare tutto.
cat pass.txt | uniq> pass-ready.txt
non funziona, l'ho provato
non funziona perché le righe "ripetute" devono essere continue
grazie
è abbastanza utile
Molto buona! Una soluzione semplice e chiara. Mi piacciono le cose del genere 🙂
Devo ammettere che avrei fatto qualcosa in Python ma questa soluzione va bene.
grazie ^ - ^
Ciao! molto buona!
Ho una domanda per favore
funzionerebbe per me per il seguente esempio:
ABCDE 1111
DEFG2222
ABCDE 1111
DEFG2222
Le righe sono le stesse ma hanno spazi e qualche carattere in più ... verifica la stessa parola? o per linea? Io spiego?
d'ora in poi ti ringrazio tantissimo.
Un abbraccio
Ciao a tutti,
Come ho visto, questo confronta le righe e non le colonne, quindi nell'esempio che mi dai questo rimuoverebbe la prima riga o la terza, la seconda e la quarta riga, sebbene siano quasi identiche, non sono identiche al 1% perché hanno una colonna di differenza. 😉
Grazie per il commento ^ - ^
Grazie a te!! prima che oracle impiegasse un'ora per eliminare i duplicati ... ora ci vogliono 30 secondi con l'ordinamento del gatto !!
Lo richiedo in PHP: S
Uff ... sono PHP, sono molto, molto basso, non sono davvero un programmatore 🙁
Mi dispiace.
Per php c'è array_unique (...) nella documentazione ufficiale di PHP troverai molte funzioni importanti ed efficienti ..
Per quanto riguarda l'ordinamento, a meno che non sia necessario, non è necessario ... Tempo di esecuzione e memoria sono sprecati. (per quello che si fa nel post)
Saluti!
Wow !! un dizionario da usare come forza bruta !! XD
Molto buona la combinazione di sort con uniq! Mi ha aiutato molto a rimuovere le linee duplicate.
grazie
Il commento di Carlos, nonostante la sua arroganza, non è valido. Dice di usare:
cat pass.txt | uniq> pass-ready.txt
tuttavia, un prerequisito di uniq è che il file sia ordinato. Avresti dovuto pensarci un po 'di più o informarti prima.
molto bene, mi hai risparmiato un sacco di tempo eseguendo il mio bash
awk '! array_temp [$ 0] ++' pass.txt> pass-ready.txt
con questo le linee vengono eliminate senza dover ordinare.
Grazie mille per il contributo!
Anche se sarebbe bello poterlo rendere unico senza cambiare l'ordine, ma ehi, un comando facile e utile!
Grazie, mi ha aiutato molto 😉
ho questo
C000006158880201502051056088364 C00-06158880
C000007601673201503051056088364 C00-07601673
C000008659304201504051056088364 C00-08659304
T 0809074070562015120818144287185REAÑO RUBIÑOS EMILIA DORIS
T 0809092979972016010818144287185REAÑO RUBIÑOS EMILIA DORIS
C000005398451201501231044214375 C00-05398451
C000007674996201503051000000286 C00-07674996
C000008514288201504051000000463 C00-08514288
C000011613498201506051056088070 C00-11613498
Come faccio a dipingere solo i duplicati per iscritto in un file e lasciare quelli che non sono duplicati in un altro?
l'abbonato è in posizione 23 (10 posizioni)
sort -u -k 1,1 File.txt> risultato.txt
Questo ordina il file in base al primo campo
2020 e ancora in servizio, grazie mille!
Bạn co thể hướng dẫn cách loại bỏ các dòng trùng lặp của nhiều file text trong Linux o Windows được không? Cũng như trường hợp của bạn, khi tôi tạo file từ điển vì tôi chia nội dung ra nên Có khá nhiều file và chắc chắn con nhiều dòng trùng lặ file.a Các Ví dụ: File 1 của tôi co 5 dòng, file 2 co 15 dòng (co 2 dòng trùng lặp với File 1. Tôi muốn co kết quả, File 1 vẫn giữ nguyên 5 dòng, File 2 thì solo bỏ 2 dòng giống file 1 .
Như bạn biết co nhiều li do chúng ta ko thể gộp các file txt đó lại với nhau, vì những file text từ điển rất ư là nhiều ký, chẳng hạn như Rockyou. Thực tế tôi muốn thực hiện điều này bên Windows hơn, và chắc chắn ko thể gộp chúng ở bên Windows được. Hy vọng nhận được phản hồi từ bạn!