Gibt es eine Möglichkeit, die Benutzereingabe über die awk-Programmierung zu lesen? Ich versuche ein Skript zu schreiben, um eine Datei zu lesen, die den Namen und die ID des Schülers enthält. Ich muss den Namen des Schülers vom Benutzer über die Tastatur abrufen und alle Schülerergebnisse mit dem awk zurückgeben.Erhalte die Benutzereingabe in awk
7
A
Antwort
14
Sie können Benutzereingaben mit der Funktion getline
erfassen. Stellen Sie sicher, dass dies im Block BEGIN
festgelegt ist. Hier ist der Inhalt von script.awk
:
BEGIN {
printf "Enter the student's name: "
getline name < "-"
}
$2 == name {
print
}
Hier ist eine Beispieldatei mit IDs, Namen und Ergebnisse:
1 jonathan good
2 jane bad
3 steve evil
4 mike nice
Run like:
awk -f ./script.awk file.txt
7
die Eingabedatei Angenommen wird formatiert, wie:
name<tab>id
Paare und Sie die Zeile drucken, wo der Name in der Datei der Benutzereingabe entspricht, versuchen Sie dies:
awk '
BEGIN { FS=OFS="\t"; printf "Enter name: " }
NR == FNR { name = $0; next }
$1 == name
' - file
oder mit GNU awk können Sie verwenden nextfile so haben Sie die Kontrolle-D nicht zu betreten, nachdem Ihre Eingabe:
Geben Sie eine Beispieleingabe und die erwartete Ausgabe ein, wenn Sie das nicht versuchen.
1
Ich habe mit der Linie
"awk 'BEGIN{printf "enter:";getline name<"/dev/tty"} {print $0} END{printf "[%s]", name}' < /etc/passwd"
getestet und für mich ist bessere Lösung und mehr readeable.
Verwandte Themen
- 1. Awk die leeren Zeilen
- 2. Erhalte die letzte aktualisierte Datei in HDFS
- 3. Benutzereingabe, die ein Array auffüllt
- 4. wie man die Benutzereingabe steuert
- 5. Flucht Dollarzeichen in bashscript (die awk verwendet)
- 6. Benutzereingabe in mySQL-Datenbank
- 7. Benutzereingabe in Prolog
- 8. Benutzereingabe in einem Nachrichtendialogfeld
- 9. Python Benutzereingabe in Shell
- 10. Benutzereingabe in Regex umwandeln
- 11. Benutzereingabe in JavaScript
- 12. benutzerdefinierte Markdown in Benutzereingabe
- 13. Erhalte die Checkboxen in PHP
- 14. Benutzereingabe speichern
- 15. Erste Benutzereingabe
- 16. passende Datensätze in awk
- 17. in Bearbeitung mit awk
- 18. Grundlegende Benutzereingabe
- 19. Benutzereingabe manipulieren
- 20. Remote-Benutzereingabe
- 21. Mehrzeiliger Kommentar in awk
- 22. mehrdimensionale Arrays in awk
- 23. Integer-Division in awk
- 24. Gebrauchte OFMT in awk
- 25. printf Abrundung in awk
- 26. Drucken Raum, wenn die Zeilen in awk die gleichen sind
- 27. Python, wenn die Benutzereingabe Zeichenfolge enthält
- 28. Erhalte die Erlaubnisdetails programmatisch
- 29. Verwenden von Shell-Befehlen innerhalb eines awk-Skripts, die auf die awk-Befehle zugreifen müssen
- 30. awk Anfänger versucht zu verstehen awk "Denkprozess"
+1 nextfile ... Ich kann immer Dinge lernen, indem ich Ihre Antwort lese. obwohl alle Sachen in Manpage sind. Sie haben nur eine schöne Erklärung mit praktischen Beispielen gegeben. Machen Sie sie leicht zu merken. Danke. – Kent
+1, ich zweite das! –