sed-Kommando gesucht

2003-09-25 Diskussionsfäden Michael Hierweck
Hallo,

ich finde leider keine sed-Kommando um folgendes zu erreichen.

In einer Datei sollen ein Datum umformatiert werden, und zwar:

A,B,C,D,E,MMDD,G,H

soll zu

A,B,C,D,E,DD.MM.,G,H

werden.

Dabei sind die Inhalte der anderen Felder belibige Strings oder Zahlen.
Die Position des zu konvertierenden Feldes ist aber bekannt, hier z.B.
das 6. Feld.

Ich habe das über sed -e's...' mit Hilfe eines \1\4\3\2\5-Konstrukts
hinzubekommen, aber ich scheitere, weil sed für mich ziemlich
unberechnbar Teilstrings den \n's zuordnet.

Danke für Tipps

Michael

-- 
Michael Hierweck
http://www.hierweck.de


--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: sed-Kommando gesucht

2003-09-25 Diskussionsfäden Andreas Metzler
Michael Hierweck [EMAIL PROTECTED] wrote:
 ich finde leider keine sed-Kommando um folgendes zu erreichen.

 In einer Datei sollen ein Datum umformatiert werden, und zwar:

 A,B,C,D,E,MMDD,G,H

 soll zu

 A,B,C,D,E,DD.MM.,G,H
[...]

sed -e \
's/\([^,]*,[^,]*,[^,]*,[^,]*,[^,]*,\)\(\)\(..\)\(..\)/\1\4.\3.\2/'
 cu andreas

-- 
Hey, da ist ein Ballonautomat auf der Toilette!
Unofficial _Debian-packages_ of latest unstable _tin_
http://www.logic.univie.ac.at/~ametzler/debian/tin-snapshot/


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: sed-Kommando gesucht

2003-09-25 Diskussionsfäden Andreas Metzler
Andreas Pakulat [EMAIL PROTECTED] wrote:
 On 23.Sep 2003 - 17:54:21, Michael Hierweck wrote:
 ich finde leider keine sed-Kommando um folgendes zu erreichen.
 
 In einer Datei sollen ein Datum umformatiert werden, und zwar:
 
 A,B,C,D,E,MMDD,G,H
 
 soll zu
 
 A,B,C,D,E,DD.MM.,G,H
[...]
 Möglich. Ansonsten müsste:
 's/\(\(.*,\)\{5\}\)\([0-9]\{4\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)\(,.*\)/\1\5.\4.\3\6/'

Funktioniert nicht, vermutlich weil seds RE greedy sind, d.h. das erste
\(.*,\) matcht bis einschliesslich »G,«.
 cu andreas
-- 
Hey, da ist ein Ballonautomat auf der Toilette!
Unofficial _Debian-packages_ of latest unstable _tin_
http://www.logic.univie.ac.at/~ametzler/debian/tin-snapshot/


--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: sed-Kommando gesucht

2003-09-24 Diskussionsfäden Bertram Scharpf
Hallo,

Am Dienstag, 23. Sep 2003, 17:54:21 +0200 schrieb Michael Hierweck:
 Hallo, (hoffentlich kein Doppelposting, aber das erste ist verschollen)
 
 ich finde leider keine sed-Kommando um folgendes zu erreichen.
 
 In einer Datei sollen ein Datum umformatiert werden, und zwar:
 
 A,B,C,D,E,MMDD,G,H
 
 soll zu
 
 A,B,C,D,E,DD.MM.,G,H
 
 werden.
 [...], weil sed für mich ziemlich
 unberechnbar Teilstrings den \n's zuordnet.

Dies mag ein Grenzfall sein, was es einfacher ist,
`sed', `perl' oder `python' zu lernen.

Abermals ungetestet: ich habe bis heute nicht durchschaut,
was `.*' wirklich macht; probier für das zwischen den
Anführungszeichen mal:

sed 's/[^]*,usf.

Gruß
Bertram

-- 
Bertram Scharpf
Stuttgart, Deutschland/Germany


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: sed-Kommando gesucht

2003-09-24 Diskussionsfäden Christoph Maurer
* Am Mit, 24 Sep 2003 schrieb Bertram Scharpf:
 Hallo,
 
 Am Dienstag, 23. Sep 2003, 17:54:21 +0200 schrieb Michael Hierweck:
  Hallo, (hoffentlich kein Doppelposting, aber das erste ist verschollen)
  
  ich finde leider keine sed-Kommando um folgendes zu erreichen.
  
  In einer Datei sollen ein Datum umformatiert werden, und zwar:
  
  A,B,C,D,E,MMDD,G,H
  
  soll zu
  
  A,B,C,D,E,DD.MM.,G,H
  
  werden.
  [...], weil sed für mich ziemlich
  unberechnbar Teilstrings den \n's zuordnet.
 
 Dies mag ein Grenzfall sein, was es einfacher ist,
 `sed', `perl' oder `python' zu lernen.

Von python habe ich keine Ahnung, bei der Beurteilung, ob perl oder
sed einfacher ist, muss man natürlich bedenken, dass perl alles
kann, was sed kann (Es gibt Übersetzer sed-perl) aber umgekehrt
perl noch viel, viel mehr kann. Wer also häufiger Bedarf an Skripten
etc. hat, sollte sich sicher perl beibringen. 

Ansonsten sollte man sich aber auf jeden Fall mit Regular
Expressions beschäftigen, da das die Grundlage aller
Textbearbeitung ist. Leider gibt es da zwar immer noch
Unterschiede zwischen den Programmen, die aber nicht so groß sind,
dass man daran scheiterte...

Gruß

Christoph 

-- 
Christoph Maurer - http://www.christophmaurer.de
mailto:[EMAIL PROTECTED] - Tux# 194235


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: sed-Kommando gesucht

2003-09-24 Diskussionsfäden Heiko Schlittermann
On Tue, Sep 23, 2003 at 05:54:21PM +0200, Michael Hierweck wrote:
 A,B,C,D,E,MMDD,G,H
zu
 A,B,C,D,E,DD.MM.,G,H

perl -paF, -e '
$F[5] =~ s/()(..)(..)/$3.$2.$1/;
$_ = join ,, @F;
'
Best regards from Dresden
Viele Gruesse aus Dresden
Heiko Schlittermann
-- 
 SCHLITTERMANN.de -- internet  unix support -
 a href=http://debian.schlittermann.de/; Debian 3.x CD /a
 Heiko Schlittermann HS12-RIPE ---
 pgp: A1 7D F6 7B 69 73 48 35  E1 DE 21 A7 A8 9A 77 92 ---
 gpg: 3061 CFBF 2D88 F034 E8D2  7E92 EE4E AC98 48D0 359B -



-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: sed-Kommando gesucht

2003-09-24 Diskussionsfäden Bertram Scharpf
Hallo nochmal,

Am Mittwoch, 24. Sep 2003, 03:41:14 +0200 schrieb Bertram Scharpf:
 Dies mag ein Grenzfall sein, was es einfacher ist,
 `sed', `perl' oder `python' zu lernen.
   ^^^

Das sollte natürlich heißen:
`awk', `perl' oder `python'

Gruß
Bertram

-- 
Bertram Scharpf
Stuttgart, Deutschland/Germany


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



sed-Kommando gesucht

2003-09-23 Diskussionsfäden Michael Hierweck
Hallo, (hoffentlich kein Doppelposting, aber das erste ist verschollen)

ich finde leider keine sed-Kommando um folgendes zu erreichen.

In einer Datei sollen ein Datum umformatiert werden, und zwar:

A,B,C,D,E,MMDD,G,H

soll zu

A,B,C,D,E,DD.MM.,G,H

werden.

Dabei sind die Inhalte der anderen Felder belibige Strings oder Zahlen.
Die Position des zu konvertierenden Feldes ist aber bekannt, hier z.B.
das 6. Feld.

Ich habe das über sed -e's...' mit Hilfe eines \1\4\3\2\5-Konstrukts
hinzubekommen, aber ich scheitere, weil sed für mich ziemlich
unberechnbar Teilstrings den \n's zuordnet.

Danke für Tipps

Michael

-- 
Michael Hierweck
http://www.hierweck.de
-- 
Michael Hierweck
EDV-Serviceteam
http://www.edv-serviceteam.net


--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: sed-Kommando gesucht

2003-09-23 Diskussionsfäden Christoph Maurer
* Am Die, 23 Sep 2003 schrieb Michael Hierweck:
 Hallo, (hoffentlich kein Doppelposting, aber das erste ist verschollen)
 
 ich finde leider keine sed-Kommando um folgendes zu erreichen.
 
 In einer Datei sollen ein Datum umformatiert werden, und zwar:
 
 A,B,C,D,E,MMDD,G,H
 
 soll zu
 
 A,B,C,D,E,DD.MM.,G,H
 
 werden.

Vielleicht wäre so etwas besser mit awk zu lösen, wenn Du als
Feldtrenner , verwendest und dann etwas mit der substr Funktion
arbeitest...

z.B.
awk -F , 
'{print 
$1,$2,$3,$4,$5,\substr($6,8,2).substr($6,6,2).substr($6,2,4)\,$7,$8;}'

Gruß

Christoph 



-- 
Christoph Maurer - http://www.christophmaurer.de
mailto:[EMAIL PROTECTED] - Tux# 194235


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: sed-Kommando gesucht

2003-09-23 Diskussionsfäden Andreas Pakulat
On 23.Sep 2003 - 17:54:21, Michael Hierweck wrote:
 Hallo, (hoffentlich kein Doppelposting, aber das erste ist verschollen)
 
 ich finde leider keine sed-Kommando um folgendes zu erreichen.
 
 In einer Datei sollen ein Datum umformatiert werden, und zwar:
 
 A,B,C,D,E,MMDD,G,H
 
 soll zu
 
 A,B,C,D,E,DD.MM.,G,H
 
 werden.
 
 Dabei sind die Inhalte der anderen Felder belibige Strings oder Zahlen.
 Die Position des zu konvertierenden Feldes ist aber bekannt, hier z.B.
 das 6. Feld.
 
 Ich habe das über sed -e's...' mit Hilfe eines \1\4\3\2\5-Konstrukts
 hinzubekommen, aber ich scheitere, weil sed für mich ziemlich
 unberechnbar Teilstrings den \n's zuordnet.

Wie wäre denn

Also wenn du in keinem der anderen noch 8 Zahlen hast wäre

's/\([0-9]\{4\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)/\3.\2.\1/'

Möglich. Ansonsten müsste:
's/\(\(.*,\)\{5\}\)\([0-9]\{4\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)\(,.*\)/\1\5.\4.\3\6/'

richtig sein.

Sorry für die langen Zeilen.

Andreas

-- 
Das maximale Volumen subterraner Agrarproduktivität steht im
reziproken Verhältnis zu der spirituellen Kapazität ihrer Erzeuger.


--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)