← Back to team overview

sslug-teknik team mailing list archive

Re: shell scripting indsæt mange linier bestemt sted i fil

 

On 23/04/2009, at 15.53, Lars Madsen wrote:

Jon Bendtsen wrote:
On 23/04/2009, at 15.43, Lars Madsen wrote:
Jon Bendtsen wrote:
On 23/04/2009, at 15.31, Lars Madsen wrote:

Emne siger snart det hele.

Jeg har f.eks. 10 linier som skal insættes i en fil på et specifikt sted (som der skal testes efter)

Hvordan gør man lige det på en elegant måde?
csplit?
Du splitter filen i 2 dele. Indtil første match, og resten af filen.
Så er det bare
  cat xx00
  cat 10 nye linier
  cat xx01
csplit kan også splitte i mere end 1 match.
JonB

jeg ville nok helt gøre det uden anvende eksterne filer
Det bliver svært, da csplit genererer 2 filer.
JonB

netop, så skal man til at holde styr på hvor de er, og huske at slette dem når man er færdig.

Det undrer mig en del at man slet ikke kan gøre dette med sed.

måske awk? Måske en combination af:

max=$(cat $file | wc -l)
number=$(grep -n "regex")
head -$number
echo "line 1"
after=$(($max - $number))
tail -$after


JonB

Follow ups

References