Ich habe drei Hive-Abfragen in Shell-Skript geschrieben, um Soll- und Sollbeträge zu berechnen, die unter den Werten ausgegeben werden:
debit_amount : BOI 4760545.650000 AXIS 284.49000000 SBI 87.220000000 ICICI 14199.66000
credit_amount : BOI 3424.65 AXIS 43.4546 SBI 4.54546 ICICI 3423.3465
target_amount : BOI 4757121.000000 AXIS 241.0354 SBI 82.67454 ICICI 10776.3135
Jetzt möchte ich den Soll-Ist-Betrag für jede Bank berechnen und mit dem Soll-Ist-Wert vergleichen
Wie schreibe ich es in Shell-Skript?
Ich habe es mit dem Befehl awk versucht, aber keine erforderliche Ausgabe erhalten.
linux
shell-script
find
awk
Nutzer
quelle
quelle
grep -Eo
. Checken Sie beide Flags einman grep
.Antworten:
Einfach in Perl:
-n
Liest die Eingabe zeilenweise-a
Teilt jede Zeile im Whitespace auf das@F
Array auf-l
fügt eine neue Zeile hinzuprint
Die meisten Shells unterstützen keine Gleitkomma-Arithmetik, daher ist die Verwendung eines externen Tools unumgänglich. Hier ist ein Beispiel für die
bash
Verwendungbc
für Berechnungen:${amounts[@]}
ist ein Array, das aus der gesamten Eingabe aufgebaut ist. Für jede Bank (Indizes 2, 4, 6 und 8) wird die Belastung bei Index + 1, die Gutschrift bei Index + 11 und das Ziel bei Index + 21 gespeichert.quelle
eine awk-lösung, die awk-datei
ausgeführt werden als
und gebe
Sie können das gedruckte Feld in der printf-Anweisung anpassen.
quelle