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