Was macht `awk '{printf("%5.3f,\n", $2)}'`?

Was macht `awk '{printf("%5.3f,\n", $2)}'`?
grep "variable1=" $file | awk '{printf("%5.3f,\n", $2)}' > .rpt_variable1

Meine Fragen:

  1. Was macht die Zahl 5 in „%5.3f“?
  2. Welche Bedeutung haben 2 $?
  3. Was genau macht der Befehl „awk“?

Antwort1

Awk ist ein Programm, das eine Datei Zeile für Zeile durchsucht, bestimmte Zeichenfolgen findet und diese (falls gewünscht) ändert. Dieser gesamte Befehl durchsucht eine Datei ($file), um Zeilen mit „variable1=“ zu finden. Dies ist der grep-Teil.

In diesem Fall durchsucht Awk diese Zeilen nach dem zweiten Feld ($2). Anschließend gibt es den Wert von Feld 2 im Format nnnnn.nn (wobei n eine einzelne Ziffer ist) in die Datei .rpt_variable1 aus. Dies sieht aus wie ein Währungsformat, daher ist Feld 2 wahrscheinlich ein Dollarwert. Die 5 bedeutet, dass der „Dollar“-Teil als 5-Ziffern gedruckt wird (z. B. 12500 für 12.500 $ oder 00543 für 543 $). Die 2 in 5.2 bedeutet, dass der Wert nach dem Komma auf zwei Stellen gedruckt wird, was für Cents normal ist.

verwandte Informationen