jengelh schrieb:Aber Perl kann viel mehr!
ersetzt jede 10er-Buchstabenreihe durch den nächsten (im ASCII-Zeichensatz)Code:perl -i -pe 's/(.)\1{9}/chr(ord($1)+1) x length($&)/eg'
perl -pi -e 's/;/:/i' *.csv
sed -i -e 's/\([^"]\);/\1:/g' datei[en]
Wobei man berücksichtigen muss, dass ; auch am Zeilenanfang stehen kann. Für diesen Fall muss man noch ergänzen:haveaniceday schrieb:Hmm, das könnte gehen:
Code:sed -i -e 's/\([^"]\);/\1:/g' datei[en]
sed 's/\([^"]\);/\1:/g;s/^;/:/'
perl -pe 's/(^|[^"]);/$1:/g' datei
notoxp schrieb:Wobei man berücksichtigen muss, dass ; auch am Zeilenanfang stehen kann. Für diesen Fall muss man noch ergänzen:haveaniceday schrieb:Hmm, das könnte gehen:
Code:sed -i -e 's/\([^"]\);/\1:/g' datei[en]
In Perl geht es natürlich auch ...Code:sed 's/\([^"]\);/\1:/g;s/^;/:/'
Code:perl -pe 's/(^|[^"]);/$1:/g' datei
Kleiner Tipp aus der Praxis: Wenn es um Datenexporte aus Datenbanken geht, verwende ich als Trennzeichen meist den Tabulator. Da die meisten Eingabeformulare Tab zum "weiterspringen" verwenden und damit als Eingabe nicht akzeptieren, kommt es in den seltesten Fällen innerhalb der Datenfelder vor ...sphings schrieb:Aber da ich ncoh 3 andere sachen hätte ändern müssen, hab ihc nich dazu entschlossen das trennzeichen auf | zu ändern
macht vieles einfacher
Man muss dazusagen: Das geht nur in perl, und selbst dort war es in früheren Versionen nicht möglich ...jengelh schrieb:"Semikolon, davor (<) nicht (!) Anführungszeichen" [look-behind] ;-) Jo, mit [^"] geht's natürlich auch - ist aber auch look-forward.Code:s/(?<!");/:/