sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #95979
Re: Erstatte en linie med en anden i script
On Thu, Aug 14, 2008 at 09:04:04 +0200, Torben Andersen wrote:
> Hejsa,
>
> Har behov for et script på nogle gamle Solaris bokse, som kan søge gennem en bestemt tekstfil, identificere en bestemt linie og gemme den. Denne linie skal så erstatte den linie i en anden fil, der opfylder samme betingelser.
>
> En linie kan f.eks. se ud som:
>
> .L1TH 5 "apb" "C0805_BDY" 0 2 0 0 -15 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
>
> linien identificeres på .L1TH og C0805_BDY - dvs. 1. og 4. ord.
>
> Jeg har BASH, SED, AWK og PERL på maskinerne, men er selv rimelig blank mht. brugen. Nogen råd??
>
AWK er lidt simplere:
/\.LITH/ && /C0805_BDY/ { print "ny linie" ; next ; }
{ print ; }
I stedet for /\.LITH/ && /C0805_BDY/
kunne det også laves som : /\.LITH.*C0805_BDY/
de 2 linier kan lægges i en fil:
awk -f mitscript.awk innputfile > outputfile
Det kan også bygges sammen i et shell-script:
#!/bin/sh
awk ' /\.LITH/ && /C0805_BDY/ { print "ny linie" ; next ; }
{ print ; } ' "$1"
der er mange muligheder.
--
mvh Frank Damgaard |
Follow ups
References