In theory /filter will be faster for more than one match, $read will be faster for only one match.

$read opens a file handle, reads from the start to the position in the file which matches the line number/search parameters you specify, then closes the file handle.

/filter opens a file handle, reads from the start to the end of the file, matching the contents as it goes, then closes the file handle.

If you call $read more than once, it opens the file handle, reads from the start of the file and then closes it each time -- all of which are overheads that /filter doesn't have.

Multiple $reads could potentially be faster if the matches are found near the start of the file, as it will have less data to go through than /filter.

In any event, was just offering another alternative smile