[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: sed or awk under XP in batch file (DOS box) - print $1 lines then de
From: |
Bob Proulx |
Subject: |
Re: sed or awk under XP in batch file (DOS box) - print $1 lines then delete $1 lines from a file |
Date: |
Thu, 1 May 2008 17:02:02 -0600 |
User-agent: |
Mutt/1.5.13 (2006-08-11) |
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