取り敢えず拡張性比べるんならプログラム組むべ。
まずはファイル名とキーワードを受け取って、ファイルの中にキーワードがあったらTrue。無かったらFalseと表示するコマンド。

プログラミング自体から離れてだいぶ経ったので、錆びた頭だったがHaskellでどうにか書いてみた。

search部分を拡張してくから、各自searchは自前で書いてくれ。

import System.Environment

search _ [] = False
search s ns | take (length s) ns == s = True
search s (_:ns) = search s ns

main = do
arga <- getArgs
content <- readFile $ args!!0
print $ search (args!!1) content