Mailinglist Archive: opensuse (3135 mails)

< Previous Next >
Re: [opensuse] filtering
  • From: Randall R Schulz <rschulz@xxxxxxxxx>
  • Date: Fri, 9 Mar 2007 16:07:57 -0800
  • Message-id: <200703091607.57697.rschulz@xxxxxxxxx>
Vince,

On Friday 09 March 2007 15:37, Vince Oliver wrote:
> Hi All,
>
> I should take all "more*.dat" files from each "DH*"
> directory and to write out first 5 rows into "list" fajl. So each
> "DH*" directory should have "list" falj with 5 rows from all
> "more*.dat" within it. This command line works this job
>
>
> for dir in DH* ; do
>   for file in `find $dir -type f -name "more*data.dat" -print`; do
>     awk 'BEGIN{FS=","}{if(NR>1 && NR<7){
>     f=n=FILENAME;sub(/[^/]+$/,"list",f);sub(/.*\//,"",n);print
>     $6,$7,n>>f}}' $file
>   done
> done
>
>
> But I want would NOT like to have file names in "list" that contain
> words "t10" or "t9". How to filter them out in this context?

The grep family of commands can return only the status of the search, so 
you could use add these arguments to your find command before 
the -print argument:

  -exec egrep -vq '\<t(9|10)\>' \;

When you say "... contain words ..." I assume you mean you only want to 
exclude files where t9 and t10 occur as separate words, but not exclude 
files that contain, say, "last9" or "test10". If that is not what you 
want, remove the \< and \> word boundary signifiers from the egrep 
pattern above.


> Thank you
> Oliver


Randall Schulz
-- 
To unsubscribe, e-mail: opensuse+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse+help@xxxxxxxxxxxx

< Previous Next >
Follow Ups
References