PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zeichen \x0D zu zeilenumbruch ersetzen



quinte17
03-08-2005, 11:20
suche einfaches awk dingens was des macht
habe keine ahnung wie des geht

greetz

michael.sprick
04-08-2005, 13:07
geht auch sed?

\x0D ist ein Carriage Return... \x0A ist ein Linefeed bzw. Newline.

unter Windows wird die kombination aus beiden benutzt, unter linux eigentlich nur das \x0A



echo -e "\r\n" > datei.txt
cat datei.txt #Datei mit \r\n ausgeben
cat datei.txt | sed -e 's/\x0D/\n/' #\r durch \n ersetzen



für solche Fälle gibt es auch recode bzw. dos2unix

hth, michael

quinte17
04-08-2005, 15:55
ich habe es genauso versucht wie du es beschrieben hast, hat aber nicht geklappt :( (mac osx)
aber ich habe ja eigentlich auch bash und sed, somti verwundert mich des schon..

habe folgende sachen versucht:
sed 's/\x0D/\n/g' test.tab > test.out
sed 's/\x0D/\x0A/g' test.tab > test.out

danach ein
hexdump -C -n 100 test.out
und siehe da, die gemeinen 0d's sind immernoch da...
und der arme vim kann mit diesen od's ahlt nicht umgehen und sagt neol.. und zeigt halt alles in einer zeile an.

bin ich zu blöd dafür? oder ist max osx's sed so dumm?
greetz

kmunix
12-08-2005, 11:49
Ausgangslage:

echo "hallo welt\r\nguten Tag\r\n" > datei.txt

Lösungen:
1) col -b < datei.txt > datei.txt.unix
Bem: es werden alle "PC"-Zeichen konvertiert.
2) sed 's/.$//' datei.txt > datei.txt.unix
Bem: Hier werden einfach die letzten Zeichen abgeschnitten. Also nur verwenden wenn alle Zeilen mit CR-LF enden.
3) sed 's/^M//g' datei.txt > datei.txt.unix
Bem: ^M zwingend durch [ctrl-v] [ctrl-m] erzeugen.

ich hoffe ich konnte helfen

//kmunix

quinte17
12-08-2005, 12:54
hey super!!!
des 3. hat fast geholfen :D
nun habe ich kein zeichen mehr zwischen den einträgen.. vorher wars so:
blablub^Mxxx
nun:
blablubxxx
ich hätte es aber gerne so:
blablub
xxx

edit:
ich habe ja vielmehr des prob, dass mir vim einfach sagt no end of line und dann alles so anzeigt, mit den ^M will aber eigentlich einen \n sehen..
grml

greetz

kmunix
12-08-2005, 14:09
Was hälst du davon

cat datei.txt | tr "\015" "\012" > datei.txt.unix