sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #98165
Re: shell scripting indsæt mange linier bestemt sted i fil
Jon Bendtsen skrev:
...
> 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
>
AWK er nok lettere, f.eks. efter linie 17 ?
Se "man gawk", NR er "The total number of input records seen so far."
og da std. record separator er linieskift så er det linenummer.
gawk '
NR<17 || NR > 17 {
print
next ;
}
NR==17 {
print ;
print "detter er en ny laaaa...aaang linie1";
print "detter er en ny laaaa...aaang linie2";
# osv.
next;
}
' < "$oldfil" > "$newfil"
PS er det med DOS linieskift bør man måske lige konvertere til unix linieskift
og så tilbage bagefter...
Follow ups
References