|
| 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 |
| | |
|
|