www.mikrocontroller.net

Forum: PC-Programmierung Letztes Byte einer Datei entfernen, Linux Hausmittel ?


Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
#!/bin/sh
sed -i 's/.$//' $1

Leider scheint das . nicht auf NULL anzusprechen.

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Willst du das letzte Byte der gesamten Datei entfernen, oder das letzte 
Byte jeder Zeile?

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der gesamten Datei

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Musste zwar rechnen, aber mit dd gehts.

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn es nur das allerletzte Byte wegnehmen soll, muß man sed sagen, daß 
es nur die letzte Zeile anfassen soll ($ als Adressangabe vor dem s...):
if [ "$1" != "" ]
then
    sed -i -e "\$s/.$//" $1
else
    echo mangels Argument nichts zu tun
fi

dd ist aber sicher geeigneter bei Binärdateien; sed arbeitet 
zeilenweise.
Oder man rechnet und nimmt head -c ...

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klappt nicht, das . ist kein Match mit 0x00

head --bytes=-1 $1 > out

funktioniert auch ohne rechnen (stat -c %s $1) allerdings müsste man das 
inputfile irgendwie überschreiben können..

vielleicht so

cat $1 | head --bytes=-1 > $1

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine andere Möglichkeit wäre das Programm "truncate", das seit kurzem in 
den coreutils ist:
http://www.gnu.org/software/coreutils/manual/coreu...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.