brauchen Sie ein shell-Skript zum konvertieren von big endian auf little endian
Brauche ich eine shell-script-Programm zum drucken der hexadezimale Zahl von big-endian zu little-endian -
Zum Beispiel:
- Eingang:
my virtual address = 00d66d7e
- Ausgabe:
7e6dd600
Wie kann ich kann ich das in ein bash-script?
- sieht aus wie die einfache string-manipulation.
- Warum nicht zeigen, was du versucht hast? Stackoverflow ist nicht für die Anfrage. Es ist für die Beantwortung von Fragen
- Auch nicht, was C beziehen sich auf die shell? Und was ist shell?
- Möglich, Duplikat der Command-Zeile reverse byte-order/ändern endian Typ. Siehe auch Wie eine Umkehrung der byte-Reihenfolge in einem 8-byte-string in Perl?.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für 32-bit-Adressen, vorausgesetzt, es ist null gepolstert:
Basierend auf Karoly Antwort Sie könnte verwenden Sie Folgendes Skript, das Lesen von Pipe-input:
Du z.B. könnte speichern Sie dieses Skript als endian.sh und machen es ausführbar mit:
Dann:
gibt Sie:
Für eine andere Zeichenfolge der Länge:
Ergebnis wäre:
./endian.sh d76f411475428afc90947ee320
? Danke!Hatte eben dies zu tun... aber von dezimal-zu little-endian - .. die Anpassung dieser hier:
erreicht das gewünschte Ergebnis, für beliebig große hexadezimalen Darstellungen von vorzeichenlosen Ganzzahlen.
(h/t "tac -rs' MestreLion, sehr schön!)
tac
oder zumindest GNUtac
akzeptiert einen regex als separator, so dass grep nicht nötig:echo "AABBCC" | tac -rs ..
echo -n 00d66d7e | tac -rs .. ; echo
aber das ist nur Geschmack, denke ich.Diese Werke für Armaturenbrett (und viele andere shells) :
Ergebnis sollte "0x78563412"
Dieses Skript ist für flipping 16-bit-Daten.
In Reaktion auf Freewind Kommentar, Anfrage und Gebäude aus der hutheano tolle Antwort, ich schrieb meine eigenen bash-Skript und ich eine verkürzte version unten. Das vollständige Skript kann heruntergeladen werden hier.
Die folgende Implementierung Konten für ungerade Länge Streicher
0x
oder\x
Präfixe und mehrere output-Formate und können wie folgt benutzt werden:be2le bash-Skript