sed Rundung einer Zahl auf 2 Dezimalstellen
Habe ich eine Reihe also 123.456789 und meine Frage ist, wie diese Runde auf zwei Dezimalstellen nach dem Punkt, so dass es Aussehen wie 123.46 mit sed? Irgendwelche Ideen?
Alternativ dazu, wie schneidet der rest nach 2 Dezimalstellen, so dass am Ende würde es so Aussehen: 123.45?
Vielen Dank im Voraus!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eigentlich die sed ist nicht die rght-tool für diese, Ihre, besser genutzt werden sollten awk. Erstellen Sie ein awk-Skript wie dieses:
ODER mit BASH printf:
AUSGABE:
123.46
Abschneiden, es kann getan werden mit etwas wie:
Dieser funktioniert grundsätzlich, indem Sie eine Zeichenfolge der form
.dd[ddd...]
(wod
ist eine Ziffer) und ersetzen die ganze Sache nur mit der.dd
(die Klammern handeln, um zu erfassen, die.dd
bit).Rundung es ist ein wenig schwieriger, da es nicht einfache text-Ersetzung (Sie müssen ändern die Letzte Zahl hinzufügen, wenn die nächste Ziffer fünf oder mehr). Müssen Sie möglicherweise zu greifen, um etwas mehr anpassbare tools für, die.
Eine Weg, dies zu tun (obwohl ich bin mir ziemlich sicher, es ist nicht die besten Weg) ist mit
Perl
:Dies bedeutet das Runden der operation auf jedem Feld entspricht, das gewünschte Muster aber, wie gesagt, es ist ziemlich hässlich - ich bin sicher, es gibt bessere Wege (brian d foy, wo sind Sie?)
Da niemand geschafft Runden mit
sed
doch wie auch immer, hier ist ein Python-Beispiel für Sie:Ändern können Sie 2, um etwas anderes zu ändern, die Rundung Genauigkeit.