Was ist der Unterschied zwischen print und printf in awk?

7

In awkwas ist der Unterschied zwischen printund printf?

Gibt es irgendwelche Einschränkungen, die nur printanstelle von printfund umgekehrt verwendet werden dürfen?

Ravan
quelle
1
War es wirklich zu schwer, das Handbuch für so etwas zu lesen?
Jasonwryan
1
@ jasonwryan Zustimmen- Aber wenn ich wiederholt nach etwas frage, das im Handbuch verfügbar ist, ist Ihr Kommentar nützlicher. Aber es war mein erster Beitrag. Es war ein sehr merkwürdiges Verhalten von einer technisch soliden Person =)
Ravan
Ravan über den U & L-Kontext wird geschätzt. Zum Beispiel: Ich lerne, habe das gesehen, habe es versucht, das ist passiert, ich möchte das tun, warum und wie? Arbeitsbeispiele zur Veranschaulichung sind großartig! Es gibt Hunderte von Perspektiven für eine Frage wie Ihre - ein kleiner Kontext, um eine Richtung zu finden und eine Antwort zu finden, hilft wirklich. Was auch immer Sie zum Staunen bringt, wäre gut zu wissen. Ich sehe, Sie sind ein Top-Mitglied bei AskUbuntu. Willkommen bei U & L. Ich würde sagen, eine Möglichkeit, über den Unterschied nachzudenken, ist, dass Ubuntu ein Produkt ist, Unix ist Philosophie.
RobertL
@ Jasonwryan Ich denke auch, dass die Frage zu allgemein ist. Aber ich sehe Ravans Standpunkt. Wie wäre es mit: "Das meiste, was Sie fragen, wird in der awkManpage behandelt." Können wir beurteilen, was für jemand anderen schwierig oder einfach sein könnte?
RobertL
@ RobertL sehen Sie die Maus über Text für eine Abwertung: "Diese Frage zeigt keinen Forschungsaufwand ..."
Jasonwryan

Antworten:

7

Wie das GNU awk (gawk Handbuch sagt) unter http://www.gnu.org/software/gawk/manual/gawk.html#Printing

Verwenden Sie die print-Anweisung, um eine Ausgabe mit einfacher, standardisierter Formatierung zu erstellen. Sie geben nur die zu druckenden Zeichenfolgen oder Zahlen in einer durch Kommas getrennten Liste an. Sie werden ausgegeben, durch einzelne Leerzeichen getrennt, gefolgt von einer neuen Zeile.

& usw.

Verwenden Sie printf, um das Ausgabeformat genauer zu steuern als das, was durch Drucken bereitgestellt wird. Mit printf können Sie die Breite angeben, die für jedes Element verwendet werden soll, sowie verschiedene Formatierungsoptionen für Zahlen (z. B. welche Ausgabebasis verwendet werden soll, ob ein Exponent gedruckt werden soll, ob ein Zeichen gedruckt werden soll und wie viele Ziffern nach dem gedruckt werden sollen Komma).

Das erklärt also ziemlich genau die Unterschiede und Einschränkungen.

Lev Lafayette
quelle
2
Gute Antwort, aber Beispiele für Print und Printf wären besser
HattrickNZ
4

Drucken :

  • "Drucken" selbst druckt die Eingabezeile.
  • "Drucken" mit einem Argument druckt das Argument.
  • "Drucken" mit mehreren Argumenten druckt alle Argumente, die durch Leerzeichen (oder andere angegebene OFS) getrennt sind, wenn die Argumente durch Kommas getrennt sind, oder verkettet sind, wenn die Argumente durch Leerzeichen getrennt sind.

printf :

Die Funktion "printf ()" (formatierter Druck) ist viel flexibler und schwieriger. Es hat die Syntax:

 printf(<string>,<expression list>)

Unterschied :

Der Unterschied zwischen printf und print ist das Formatargument. Dies ist ein Ausdruck, dessen Wert als Zeichenfolge verwendet wird. Es gibt an, wie die anderen Argumente ausgegeben werden sollen. Es wird als Formatzeichenfolge bezeichnet.

Referenzen hier und hier

Ravan
quelle