/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
erstatte alle forekomster af et bestemt te~
Fra : Michael Nielsen


Dato : 25-01-04 00:06

Hejsa Gruppe

Jeg har en tekstfil hvori jeg gerne vil ha' erstattet alle forekomster af
'>' til '->'.

'>' kan forekommmer oftest i en streng, f.eks. dette>er>en>test
som gerne skulle blive til dette->er->en->test

Hvordan gør man det (lettest) i en skal (skal bruge det i et script) ?
har kigget lidt på awk men jeg kan ikke få det til at køre ordenligt.

På forhånd tak
Michael

 
 
Martin Moller Peders~ (25-01-2004)
Kommentar
Fra : Martin Moller Peders~


Dato : 25-01-04 00:07

In <pan.2004.01.24.23.06.08.590267@bla.com> Michael Nielsen <bla@bla.com> writes:

>Hejsa Gruppe

>Jeg har en tekstfil hvori jeg gerne vil ha' erstattet alle forekomster af
>'>' til '->'.

perl -i.bak -pe 's/>/->/g' filnavn.txt

Mvh
Martin

Peter Mogensen (25-01-2004)
Kommentar
Fra : Peter Mogensen


Dato : 25-01-04 00:22

Michael Nielsen wrote:
> Hejsa Gruppe
>
> Jeg har en tekstfil hvori jeg gerne vil ha' erstattet alle forekomster af
> '>' til '->'.
>
> '>' kan forekommmer oftest i en streng, f.eks. dette>er>en>test
> som gerne skulle blive til dette->er->en->test
>
> Hvordan gør man det (lettest) i en skal (skal bruge det i et script) ?
> har kigget lidt på awk men jeg kan ikke få det til at køre ordenligt.

Det er fordi awk er mere beregnet til at håndtere filer, der er indelt i
linier, som er indelt i et vist antal felter.

Det rigtige unix-værktøj hedder "sed":

$ sed -e 's/>/->/g' textfil > outputfil

Peter

PS: Perl tilbyder alle features fra awk og sed og flere fra shell og C
og er derfor en anden måde at gøre det på som mange benytter:
$ perl -p -e 's/>/->/g;' < textfil > outputfil


Michael Nielsen (25-01-2004)
Kommentar
Fra : Michael Nielsen


Dato : 25-01-04 15:13

> Det er fordi awk er mere beregnet til at håndtere filer, der er indelt i
> linier, som er indelt i et vist antal felter.
Ok

> Det rigtige unix-værktøj hedder "sed":
>
> $ sed -e 's/>/->/g' textfil > outputfil
Tusind tak, det virker perfekt !


> PS: Perl tilbyder alle features fra awk og sed og flere fra shell og C
> og er derfor en anden måde at gøre det på som mange benytter: $ perl
> -p -e 's/>/->/g;' < textfil > outputfil
Aha, måske man skulle tage og sætte sig ind i perl.

MVH
Michael

Peter Mogensen (25-01-2004)
Kommentar
Fra : Peter Mogensen


Dato : 25-01-04 16:07

Michael Nielsen wrote:
> Aha, måske man skulle tage og sætte sig ind i perl.

Perl er guds gave til menneskeheden :) .. det og så Nutella :)
... well.. så Larry Wall's da.

Det kan anbefales at lære Perl. Det er uhyre stærkt og dækker næsten
alle dine system-programmerings behov. Jeg bruger kun awk/sed/bash, når
der er tale om en lille installation hvor Perl ville være for tungt ...
f.eks. scripts på min firewall.

Peter



Kristian Thy (25-01-2004)
Kommentar
Fra : Kristian Thy


Dato : 25-01-04 00:26

Michael Nielsen uttered:
> Jeg har en tekstfil hvori jeg gerne vil ha' erstattet alle
> forekomster af '>' til '->'. '>' kan forekommmer oftest i en streng,
> f.eks. dette>er>en>test som gerne skulle blive til
> dette->er->en->test

$ sed "s/>/->/g" input.fil > output.fil

\\kristian
--
"And then Trogdor smote the Kerrek,
and all was laid to burnination"
--Strong Bad

Kristian Thy (25-01-2004)
Kommentar
Fra : Kristian Thy


Dato : 25-01-04 00:29

Michael Nielsen uttered:
> Hvordan gør man det (lettest) i en skal (skal bruge det i et script) ?

Et godt link til den slags her: "sed one-liners" på
http://www.student.northpark.edu/pemente/sed/sed1line.txt

\\kristian
--
IRC is just multiplayer notepad.

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408937
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste