Sto provando a creare un dizionario di parole da una raccolta di file. C'è un modo semplice per stampare tutte le parole in un file, uno per riga?estrarre parole da un file
risposta
Si potrebbe utilizzare grep
:
-E '\w+'
ricerche per parole-o
stampa solo la parte della linea che corrisponde
% cat temp Some examples use "The quick brown fox jumped over the lazy dog," rather than "Lorem ipsum dolor sit amet, consectetur adipiscing elit" for example text. # if you don't care whether words repeat % grep -o -E '\w+' temp Some examples use The quick brown fox jumped over the lazy dog rather than Lorem ipsum dolor sit amet consectetur adipiscing elit for example text
Se si desidera solo di stampa ogni parola una volta, trascurando il caso, è possibile utilizzare sort
-u
stampa solo ogni parola una volta-f
dicesort
di ignorare caso quando si confrontano le parole
# if you only want each word once % grep -o -E '\w+' temp | sort -u -f adipiscing amet brown consectetur dog dolor elit example examples for fox ipsum jumped lazy Lorem over quick rather sit Some text than The use
grazie! Sono stato su Google per un'ora per questo. Stranamente, usando "... da un documento" invece di "...da un file di testo "mi ha portato questa domanda come prima corrispondenza – davka
puoi usare ----> grep -o -E '\ w +' testfile.txt | sort -u -f | tee 5.txt <---- per eseguire l'output su un file –
jack yang: o semplicemente utilizzare un normale reindirizzamento della shell 'grep ... | sort -u -f> 5.txt' – rampion
Un buon inizio è di utilizzare semplicemente sed
sostituire tutti gli spazi con a capo, togliere le righe vuote (di nuovo con sed
), quindi sort
con il flag -u
(uniquify) per rimuovere i duplicati, come in questo esempio:
$ echo "the quick brown dog and fox jumped
over the lazy dog" | sed 's/ /\n/g' | sed '/^$/d' | sort -u
and
brown
dog
fox
jumped
lazy
over
quick
the
Quindi puoi iniziare a preoccuparti della punteggiatura e simili.
parole assumendo separate da spazi bianchi
awk '{for(i=1;i<=NF;i++)print $i}' file
o
tr ' ' "\n" < file
se si desidera che l'unicità:
awk '{for(i=1;i<=NF;i++)_[$i]++}END{for(i in _) print i}' file
tr ' ' "\n" < file | sort -u
con alcuni segni di interpunzione rimossi.
awk '{
gsub(/["*^&()#@$,?~]/,"")
for(i=1;i<=NF;i++){ _[$i] }
}
END{ for(o in _){ print o } }' file
Ken Church's "Unix(TM) for Poets" (PDF) descrive esattamente questo tipo di applicazione - parole estrazione di file di testo, l'ordinamento e contandoli, ecc.
Il comando tr può farlo ...
tr [:blank:] '\n' < test.txt
Ciò richiede al programma tr di sostituire lo spazio bianco con una nuova riga. L'uscita è stdout, ma potrebbe essere reindirizzato a un altro file, result.txt:
tr [:blank:] '\n' <test.txt> result.txt
Fare riferimento here.
- 1. Ruby: Estrarre parole da stringa
- 2. Estrarre un file da una stringa ZIP
- 3. Estrarre l'hash SHA1 da un file torrent
- 4. Estrarre una stringa tra due parole da una stringa
- 5. Estrarre le parole nei rettangoli dal testo
- 6. Come estrarre un singolo blocco di byte da un file?
- 7. Come posso estrarre parole che iniziano con un tag cancelletto (#) da una stringa in un array
- 8. Estrarre un intervallo da NSArray
- 9. Estrarre più chiavi da un file .p12 utilizzando OpenSSL ruby
- 10. Estrarre dati da linee di un file di testo
- 11. Come estrarre il testo da un file PSD?
- 12. Come estrarre i file sorgente da un repository git?
- 13. estrarre il codice di latex da un file PDF
- 14. Come estrarre i livelli da un file Photoshop? C#
- 15. Come estrarre il testo da un file PDF in Python?
- 16. Estrarre il nome del file da un percorso
- 17. Estrarre tutte le parole tra due parole specifiche in un vettore di caratteri
- 18. Come trovare parole univoche da file linux
- 19. Come estrarre le informazioni tra due parole univoche in un file di testo di grandi dimensioni
- 20. Come estrarre le parole chiave da un blocco di testo in Haskell
- 21. Rimuovi righe contenenti parole chiave da un file
- 22. Python: carica parole da file in un set
- 23. Copia di parole da un file all'altro in cpp
- 24. Come estrarre le immagini da un video?
- 25. Qualcosa di meglio dell'alchimia rubino per estrarre parole chiave?
- 26. Estrarre valori duplicati da un dizionario
- 27. Come estrarre un singolo file da un file di archivio remoto?
- 28. Estrarre dati da ELM327
- 29. Estrarre un file zip in memoria?
- 30. Come estrarre l'equazione da un adattamento polinomiale?
Avete bisogno di un certo linguaggio di programmazione? – mkmurray
@mkmurray, "shell", "scripting" e "unix" di solito significano uno qualsiasi degli strumenti disponibili sulle caselle standard UNIX: awk, grep, sed, perl, cut e così via. – paxdiablo