Wie drucke ich je nach Eingabe ein bestimmtes Feld?

Wie drucke ich je nach Eingabe ein bestimmtes Feld?

Angenommen, eine Textdatei hat zwei Spalten: Eine enthält den Namen des Weins und die andere eine Zahl, die angibt, wie viele Flaschen es davon gibt.

Ich möchte ein Skript erstellen, bei dessen Ausführung der Benutzer eine Zahl zwischen 1 und 30 eingibt und mir dann in alphabetischer Reihenfolge alle Weine angezeigt werden, von denen diese Nummer noch auf Lager ist.

Wie kann ich das machen?

Antwort1

Wenn Ihre Felder durch Leerzeichen definiert sind, können Sie einfach Folgendes tun:

awk '$2==30' file

Dadurch werden alle Zeilen gedruckt, filederen zweites Feld ist 30. Wenn Sie nur das erste Feld, den Namen, möchten, verwenden Sie:

awk '$2==30{print $1}' file

Und um sie alphabetisch zu erhalten, leiten Sie die Ausgabe durch Sortieren weiter:

awk '$2==30{print $1}' file | sort

verwandte Informationen