Code:
;
;usage [color:blue]$filterfile2file4word(<file1>,<file2>,<word>)[/color]
;return 0 to X,  X being the number of words ADDED to file2
;
alias filterfile2file4word {
  set %filterfile2file4word.$2 $2
  set %filterfile2file4word.$3 $3
  set %filterfile2file4word.return 0
  filter -fk $+(",$1,") filterfile2file4word.filter.alias $+(*,$3,*)
  unset %filterfile2file4word.$2
  unset %filterfile2file4word.$3
  if (%filterfile2file4word.return) { }
  unset %filterfile2file4word.return
  return $v1
}
alias filterfile2file4word.filter.alias {
  tokenize 32 $1-
  while ($0) {
    if (%filterfile2file4word.$3 iswm $1) { write $+(",%filterfile2file4word.$2,") $1 | inc %filterfile2file4word.return }
    tokenize 32 $2-
  }
}


* mirc 6.16 required *
* no error checking is performed on the filenames or your access right to them, thats your fault if u put grabage in you get garbage out.
* <word> is any word with or without wildcards.