WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   UNIX Shell-Skript (http://www.wcm.at/forum/showthread.php?t=68660)

pc.net 03.09.2002 13:35

UNIX Shell-Skript
 
ich möchte das letzte byte einer datei eliminieren, da es mir bei der weiteren verarbeitung auf einer anderen plattform probleme bereitet.

das programm, das das file erstellt, schreibt unter gewissen umständen den HEX-code 0C als letztes byte. dieses programm kann/darf ich nicht ändern. somit bleibt mir nur der weg, das file nachträglich um das letzte byte zu kürzen.

wie kann ich das am einfachsten lösen?

irrsinn 03.09.2002 22:49

wie wärs mit einem kleinen c programm?

pc.net 03.09.2002 22:55

hm ... das problem ist, dass ich das nicht für mich selber nachfrage, sondern für einen kollegen ... er hätte das am liebsten gleich im shell-skript erledigt, da er sowieso einen teil der verarbeitung dort durchführt ...

irrsinn 03.09.2002 22:57

aber ein programmaufruf aus einem shellscript heraus is ja an sich auch kein problem

pc.net 03.09.2002 23:01

ja, ich weiss ... trotzdem will dieser programmierer sowenig wie möglich verschiedene eigenentwicklungen machen ... alles soll soweit möglich im shell-skript ablaufen ... das muss doch irgendwie gehen ...

pc.net 04.09.2002 13:17

*schieb*

weiss da keiner was? :(

_m3 04.09.2002 19:20

Ich würds ja in Perl machen, aber .....
Code:

for i in $*
do
    if [ -f $i ]
    then
        echo "Processing $i"
        cp $i $i.tmp
        sed 's/\x0C$//' $i.tmp > $i
        if [ $?=0 ]; then
            rm $i.tmp
        fi
    fi
done
echo "Done"

Löscht allerdinsg jedes OC, dass am Ende einer Zeile auftaucht.

Tarjan 04.09.2002 19:32

Probiere mal tr -d löscht bestimmte Zeichen vom stdin. Wenn´s immer 0C ist klappt es. Nachteil ist aber dass alle 0C gelöscht werden.

pc.net 04.09.2002 21:44

danke ... werds morgen mal ausprobieren lassen ...

es ist egal, dass jedes 0C gelöscht wird, da es bei erstellten 100 files definitiv immer nur einmal als letztes byte vorgekommen ist ...

pc.net 05.09.2002 11:32

@Tarjan
danke, deine variante funktioniert bestens ... :)

das einzige problem, dass der tr-command hat ist: \x0C kann er nicht verarbeiten ... ich hab aber einfach im HEX-modus diesen code eingegeben und somit funktionierts.

@_m3
danke auch für deine bemühung :)

Tarjan 05.09.2002 12:55

Habe mir gerade die man-pages von tr angesehen. Da steht wirklich nix von Hex, dafür kann er aber Oktal ;).

pc.net 05.09.2002 13:09

jo, des hon i a gsegn ...

btw, für alle leute, dies nicht wissen: die man-pages gibts auch online
http://publib.boulder.ibm.com/cgi-bi...orm?lang=en_US


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:37 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag