C'è un modo per leggere l'input dell'utente attraverso la programmazione awk? Provo a scrivere uno script per leggere un file che contiene il nome e l'ID dello studente. Devo ottenere il nome dello studente dall'utente tramite la tastiera e restituire tutti i risultati dello studente utilizzando l'awk.ottieni l'input dell'utente in awk
7
A
risposta
14
È possibile raccogliere l'input dell'utente utilizzando la funzione getline
. Assicurati di impostarlo nel blocco BEGIN
. Ecco il contenuto della script.awk
:
BEGIN {
printf "Enter the student's name: "
getline name < "-"
}
$2 == name {
print
}
Ecco un esempio di file con ID, i nomi, e risultati:
1 jonathan good
2 jane bad
3 steve evil
4 mike nice
Esegui come:
awk -f ./script.awk file.txt
7
Assumendo il file di input viene formattato come:
name<tab>id
coppie e si desidera stampare la linea in cui il nome del file corrisponde l'input dell'utente, provate questo:
awk '
BEGIN { FS=OFS="\t"; printf "Enter name: " }
NR == FNR { name = $0; next }
$1 == name
' - file
o con GNU awk è possibile utilizzare nextfile in modo da non dover digitare control-D dopo il tuo input:
awk '
BEGIN { FS=OFS="\t"; printf "Enter name: " }
NR == FNR { name = $0; nextfile }
$1 == name
' - file
Pubblica alcuni esempi di input e output previsti se non è quello che stai cercando di fare.
1
Ho provato con la linea
"awk 'BEGIN{printf "enter:";getline name<"/dev/tty"} {print $0} END{printf "[%s]", name}' < /etc/passwd"
e per me è una soluzione migliore e più readeable.
Problemi correlati
- 1. Perché l'array awk "not in" funziona come awk "in" array?
- 2. Commento multilinea in awk
- 3. matrici multidimensionali in awk
- 4. calcolare media usando awk da più file
- 5. sed/awk in maiuscolo stringhe
- 6. variabili lettera incremento in awk
- 7. Awk AND operator
- 8. Awk if else issues
- 9. awk Variabile FPAT: funzionante
- 10. estrapolazione - awk basa
- 11. awk dynamic document indexing
- 12. Come passare l'output AWK in variabile?
- 13. Sed e Awk in uscita e commerciale (&)
- 14. Il valore assoluto in awk non funziona?
- 15. Dichiarare una funzione awk in bash
- 16. come rendere float to integer in awk
- 17. seleziona riga ed elemento in awk
- 18. Come saltare una directory in awk?
- 19. Come pipe tail -f in awk
- 20. Incorporamento awk in uno script di shell
- 21. Passaggio di variabili in awk da bash
- 22. Che cosa è "NR == FNR" in awk?
- 23. parentesi graffe in awk reg exp
- 24. cambiare una linea con awk
- 25. Salvataggio dell'output awk alla variabile
- 26. Linux awk unire due file
- 27. Confronta i file con awk
- 28. Come eseguire un file .awk?
- 29. serie awk associativa cresce velocemente
- 30. AWK - funzione sub e gsub?
+1 file successivo ... Posso sempre imparare le cose leggendo la tua risposta. anche se tutti gli elementi sono nella pagina man. Hai appena dato una bella spiegazione con esempi pratici ... rendili facili da ricordare. grazie. – Kent
+1, secondo! –