John Bartley K7AAY wrote: > I need to print $1 lines from a file, and then delete that number of > lines. > $1 has been derived in the prior line with > wc -l sourcefile.txt | awk '{$1 /= 4 ; $1 = int($1) ; print $1 }'
That all looks okay. But I would probably personally do it all in the shell. Try this: echo $(( $(wc -l < sourcefile.txt) / 4 )) > I've tried numerous awk and sed statements, a la: > > sed -e -n "$1,p" sourcefile.txt > list.1 > sed -i "$1d" sourcefile.txt > sed $1q list.txt > list.1 & sed -i $1d sourcefile.txt > awk "{(FNR < $1); print}" sourcefile.txt > list.1 Try this: l=$(( $(wc -l < sourcefile.txt) / 4 )) sed --in-place "1,${l}d" sourcefile.txt Bob