Newsgroup: it.comp.os.win.windows10
Titolo: Aprire un file di testo di 20Gb...

Ho scaricato da HaveIBeenPwned un file con gli hash di password 
craccate per controllare se ci fosse l'hash di qualche mia password 
principale.
Una volta decompresso il file è di quasi 20GB, per cui nemmeno 
notepad++ riesce ad aprirlo.
 
Ho anche provato a dividerlo in 3 parti con Simple Text Splitter (per 
poi usare PilotEdit Lite la cui versione gratuita apre file anche di 
10GB), ma mi dà errore di "fuori range"...
 
Ho una Ram di 16G e ho provato ad aumentare la memoria virtuale anche 
di ulteriori 10GB, ma ancora non riesco.
 
Come posso fare?

 principale.
 
Scusa, ma l'ufficio complicazione cose semplici non dovrebbe essere chiuso
il 24 dicenmbre pomeriggio? Eddai, almeno oggi fallo riposare... :)
 
Ti fa tutto il server della pagina web, metti l'indirizzo email e saprai se
la password è stata ciullata ed è da cambiare oppure no.
 
https://haveibeenpwned.com/
 
 
 
 
-- 
Ciao, Guglielmo.

 
https://haveibeenpwned.com/
 
 
Lo so che lo posso fare da lì, ma volevo cercare di farlo per conto 
mio.
Ok, mi sa che rinuncio e seguirò la via semplice :-)
 
Peccato, mi stavo divertendo... :-)
 
A proposito: Buon Natale a te e a tutti!

 Lo so che lo posso fare da lě, ma volevo cercare di farlo per conto mio.
 
Per 20 giga non garantisco, ma a suo tempo in VB ho aperto
file belli corposi... penso che si possa provare in VBS, se non
trovi altra strada, magari leggendo riga per riga. Pure se č il
metodo piů lento, dovrebbe almeno funzionare.
 
Pseudo (molto, molto pseudo) codice:
Open file hash.list
  while not eof
     read line
     if line = hash cercata then
         print trovata
         exit while
      End if
   Loop
Close file
 
Dal cellulare mi č un po' scomodo provare :-D
 
Bye, G.
 
 
----Android NewsGroup Reader----
https://piaohong.s3-us-west-2.amazonaws.com/usenet/index.html
 

 Come posso fare?
 
Non ricordo la sintassi corretta e vado a memoria: potresti usare il 
comando "find" da prompt di DOS.
Per vedere le varie opzioni, usa
find /?
 
Ciao, Mario

 Bye, G.
 
Buona idea, proverò, il codice che hai scritto è semplice, sicuramemnte 
funziona
 
Buon Natale!

Rispondo qui sotto a MBulu

Idea ancora migliore, grazie, la sto provando adesso, sembra 
funzionare.
 
Al momento mi occupa un 18% a 4GHz di cpu esacore, con temperature dei 
core variabili velocissimamente tra i 57 e i 72°C...si vede che i 6 
core si alternano tra loro...
I 2 fan però si muovono come al solito.
Consumo di CPU circa 28W con un picco a 56W!
 
Divertente! :-)

In effetti il comando Dos Find con gli opportuni parametr i funziona 
bene.
 
Con una ricerca di prova della stringa "abcd" non ha trovato nulla in 
tutto il file in circa 10 minuti; mentre facendogli trovare una stringa 
intera che sicuramente conteneva (la avevo prima vista circa alla 
3000ma posizione) ci ha messo a occhio 1 secondo.

Rispondo qui sotto a ArchiPit

Ok, ora vado a mangiare che sono arrivati gli ospiti!!
 
Buon natale!


Se le lanci tutte i fila, la prima ricerca dovrebbe essere più lunga di 
tutte. Dalla seconda in poi, a causa della bufferizzazione, dovrebbe 
metterci meno.
 
Ciao, Mario

 Come posso fare?
 
Un file del genere io lo riverso in un database SQLite e poi lo interrogo da
lì. Altrimenti, Get-Content e Select-String di Powershell sono tuoi amici
 
Enrico

Rispondo qui sotto a Enrico Bianchi

Grazie, ora provo con i comandi di powershell.

 Close file
 
in VBscript qualcosa di questo genere :D
 
 
' ===================================
 
Option Explicit
 
Const ForReading = 1
Const ForWriting = 2
Const ForAppending = 8
 
Dim fso, arg
 
Set fso = CreateObject("Scripting.FileSystemObject")
Set arg = WScript.Arguments
WScript.Quit main(arg.Count, arg)
 
Function main(argc, argv)
  main = 0
  If argc = 0 Then
    printf "uso: cscript findtxt.vbs ""file"" ""testo"""
    Exit Function
  End If
 
  main = findStr(argv(0), argv(1))
End Function
 
Sub printf(sTxt)
  On Error Resume Next
  WScript.StdOut.WriteLine sTxt
End Sub
 
Sub perror(sSrc)
  Dim sMsg
 
  sMsg = "0x" & Err.Number & " " & Err.Description
  If Len(sSrc) > 0 Then
    sMsg = sMsg & " :: " & sSrc
  End If
  printf sMsg
End Sub
 
Function findStr(sFile, sStr)
  Dim fp, sLine
  Dim nCount
 
  nCount = 0
  Set fp = fso.OpenTextFile(sFile, ForReading, False)
  While Not fp.AtEndOfStream
    sLine = fp.ReadLine()
    If sLine = sStr Then
      nCount = nCount + 1
      printf nCount & " " & sLine
    End If
  Wend  
  fp.Close
  Set fp = Nothing
 
  findStr = nCount
End Function
 
' ===================================
 
 

Grazie, ora provo con i comandi di powershell.
 
Forse puň essere utile
Windows: Grep Equivalent – CMD & PowerShell
https://www.shellhacks.com/windows-grep-equivalent-cmd-powershell/
 
 
# Windows CMD
C:\> netstat -na | findstr "PORT"
 
# Windows PowerShell
PS C:\> netstat -na | Select-String "PORT"
 
 
# Windows CMD
C:\> findstr /i "^SEARCH.*STRING$" file.txt
 
# Windows PowerShell
PS C:\> Select-String "^SEARCH.*STRING$" file.txt
 

 metterci meno
 
eh... ma per bufferizzare 20Gb di roba ce ne vuole... di RAM ce ne č, ma 
bisogna vedere quanta ne verrebbe dedicata all'uopo
 
io direi di partire mettendo il file su un bel SSD veloce, se non lo ha gią 
fatto
 
-- 
/-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\
-=- -=- -=- -=- -=- -=- -=- -=- - -=-
........... [ al lavoro ] ...........

 Come posso fare?
 
Per un uso "una tantum" credo che le soluzioni proposte sino ad ora
possano andare, se invece vuoi usarlo su base "regolare" ti converrà
importare il file in un database (SQLite, MariaDB, MS SQL Express...) e
poi utilizzare delle banali queries SQL per reperire i dati
 
 
 
 
 

Rispondo qui sotto a ObiWan

Si, è una cosa una tantum, ed essenzialmente per curiosità.
ho usato il comndo find del dos che funge benino.
I ogni caso usare un database di Sqlite probabilemnet è la soluzione 
migliore e appena passata la tempesta informatica di fine anno degli 
amici infettati da "biglietti" di auguri fasulli su whatsapp, proverò 
pure quella.

 pure quella.
 
ammesso che ti serva, per uso "spot" credo sia esagerato
 
 
 
 
 

ArchiPit explained on 24-12-19 :

Dove lo vado a pescare quel 20-gb-file?
Vorrei importarlo per farne alcune prove off-line.
 
Bruno

 Bruno
 
https://haveibeenpwned.com/Passwords