Czy istnieje sposób na odczytanie danych wprowadzanych przez użytkownika za pośrednictwem programowania awk? Próbuję napisać skrypt, aby przeczytać plik zawierający imię i nazwisko ucznia. Muszę uzyskać nazwę ucznia od użytkownika za pomocą klawiatury i zwrócić wszystkie wyniki ucznia za pomocą awk.pobranie danych wejściowych użytkownika w awk
7
A
Odpowiedz
14
Można pobierać dane wprowadzane przez użytkownika za pomocą funkcji getline
. Upewnij się, że ustawiono to w bloku BEGIN
. Oto treść script.awk
:
BEGIN {
printf "Enter the student's name: "
getline name < "-"
}
$2 == name {
print
}
Oto przykładowy plik z identyfikatorami, nazwiskami i wyników:
1 jonathan good
2 jane bad
3 steve evil
4 mike nice
Run Like:
awk -f ./script.awk file.txt
7
Zakładając, że plik wejściowy jest sformatowana jako:
name<tab>id
pary i chcesz drukować linię gdzie nazwa w pliku pasuje do wprowadzania danych przez użytkownika, spróbuj tego:
awk '
BEGIN { FS=OFS="\t"; printf "Enter name: " }
NR == FNR { name = $0; next }
$1 == name
' - file
lub GNU awk można użyć nextfile, dzięki czemu nie trzeba wprowadzać control-D po dane wejściowe:
awk '
BEGIN { FS=OFS="\t"; printf "Enter name: " }
NR == FNR { name = $0; nextfile }
$1 == name
' - file
Opublikuj kilka przykładowych danych wejściowych i oczekiwanych wyników, jeśli nie jest to coś, co próbujesz zrobić.
1
Przetestowałem z linii
"awk 'BEGIN{printf "enter:";getline name<"/dev/tty"} {print $0} END{printf "[%s]", name}' < /etc/passwd"
i dla mnie jest lepszym rozwiązaniem i bardziej readeable.
Powiązane problemy
- 1. Aplikacja Facebook: pobranie nazwy użytkownika z identyfikatora
- 2. C# czytanie danych wejściowych użytkownika bez zatrzymywania aplikacji
- 3. Testowanie danych wejściowych w PHPUnit
- 4. Wiele danych wejściowych w JOptionPane.showInputDialog
- 5. Linux/C++: pobranie katalogu użytkownika bez wycieków
- 6. Weryfikacja danych wejściowych użytkownika przez użytkownika DRY (po stronie klienta, serwer) przy użyciu schematu JSON
- 7. Monit Node.js pomijanie danych wejściowych
- 8. Walidacja liczb całkowitych dla danych wejściowych
- 9. Szybki sposób porównywania danych wejściowych
- 10. MomentJS - przeznaczony do sprawdzania poprawności danych wejściowych?
- 11. Wprowadzanie danych wejściowych w strukturze Play
- 12. Jak sprawdzić brak danych wejściowych w bashu?
- 13. AngularJs: jak formatować dane w danych wejściowych?
- 14. Uzyskać pozycję caret w danych wejściowych HTML?
- 15. Etykiety na danych wejściowych w gnuplot
- 16. Atrybut akceptowania danych wejściowych w przeglądarce Firefox
- 17. sanityzacja danych wejściowych sprawdzanie poprawności VS
- 18. Python: sprawdzania poprawności danych wejściowych Czas
- 19. Wzorzec do sprawdzania poprawności danych wejściowych?
- 20. Jaki jest najlepszy sposób uzyskania danych wejściowych od użytkownika w C?
- 21. Django: użycie objects.values () i pobranie danych ForeignKey w szablonie
- 22. Windows: oddzielanie danych wejściowych od 2 myszy
- 23. Wydajny 2D FFT na rzeczywistych danych wejściowych?
- 24. Test jednostki Java dla różnych danych wejściowych
- 25. Zażądaj danych wejściowych z niestandardowego polecenia django?
- 26. Jak wyłączyć typ danych wejściowych = tekst?
- 27. przyjmowanie danych wejściowych ciągu słów przez słowo
- 28. jQuery- .css() nie działa dla danych wejściowych
- 29. Wyłącz sprawdzanie danych wejściowych dla pojedynczego pola
- 30. skalowanie danych wejściowych do sieci neuronowej
+1 nextfile ... Zawsze mogę się uczyć, czytając odpowiedź. mimo że wszystkie rzeczy są na stronie man. Po prostu wyjaśniłeś praktyczne przykłady. Ułatw je zapamiętać. Dziękuję Ci. – Kent
+1, drugi raz! –