← Back to team overview

sslug-teknik team mailing list archive

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