[sed]eerste character muteren

Pagina: 1
Acties:

  • Justin_Time
  • Registratie: Juni 2001
  • Laatst online: 17-07-2025
Dag mensen,

Ik probeer nu al een tijdje om dit werkend te krijgen. Ik heb een bestand met een lijstje vol met namen.

piet
kees
jan
klaas

nu wil ik graag per regel na het eerste character een punt krijgen dus iets als.
p.iet
k.ees
j.an
k.laas

Nu krijg ik het met sed alleen maar voor elkaar om een soort string "foo" etc.. te vinden en muteren maar niet om het eerste character te replacen met weer het eerste character + een punt.


Ik heb altijd veel gehad aan http://sed.sourceforge.net/sed1line.txt maar deze mocht hier niet bij baten en google en verscheidende seraches ook niet. Weet iemand hier een oplossing voor zonder perl, php etc.. dus gewoon bash, sed, awk.

Elke dag dronken is ook een geregeld leven.


  • arikkert
  • Registratie: Juli 2002
  • Laatst online: 17-02 12:23
Justin_Time schreef op 27 augustus 2004 @ 13:43:
Nu krijg ik het met sed alleen maar voor elkaar om een soort string "foo" etc.. te vinden en muteren maar niet om het eerste character te replacen met weer het eerste character + een punt.
begin van een string kun je aangeven met een het "dakje" char
^bla is in een regexp, iets dat begint met "bla"
en die punt moet je misschien escapen met backslash.

[ Voor 10% gewijzigd door arikkert op 27-08-2004 13:58 . Reden: punt evt special char ]


  • Justin_Time
  • Registratie: Juni 2001
  • Laatst online: 17-07-2025
arikkert schreef op 27 augustus 2004 @ 13:57:
[...]


begin van een string kun je aangeven met een het "dakje" char
^bla is in een regexp, iets dat begint met "bla"
en die punt moet je misschien escapen met backslash.
Ja maar dat is juist het probleem ik weet niet met welke letter hij begint.

Elke dag dronken is ook een geregeld leven.


  • hammerhead
  • Registratie: April 2000
  • Laatst online: 17-02 07:53
Daar kun je toch de . voor gebruiken? Die matched op elk karakter.

edit:
In ViM zou het volgens mij zo iets worden voor de regex:

s/^(.)(.*)/\1.\2/

Klopt waarschijnlijk niet helemaal, kan zijn dat je de punt in het tweede deel moet escapen (kan het hier nu niet controleren...). moet met sed waarschijnlijk ook wel op een soortgelijke manier te doen zijn.

edit:
Hmm... Ik zie idd dat ik het weer te moeilijk doe.... jouw oplossing is iets makkelijker rickn :)

[ Voor 82% gewijzigd door hammerhead op 27-08-2004 14:08 ]

Aviation is proof that given the will, we have the capacity to achieve the impossible.
--Eddie Rickenbacker


  • RickN
  • Registratie: December 2001
  • Laatst online: 14-06-2025
> echo "bla" | sed -e 's/^./&./'
b.la

edit:
grouping was niet nodig omdat je met & de hele gematchte expressie te pakken hebt.

[ Voor 123% gewijzigd door RickN op 27-08-2004 14:08 ]

He who knows only his own side of the case knows little of that.


  • Justin_Time
  • Registratie: Juni 2001
  • Laatst online: 17-07-2025
Rick fantastisch bedankt.

[ Voor 85% gewijzigd door Justin_Time op 27-08-2004 14:07 ]

Elke dag dronken is ook een geregeld leven.

Pagina: 1