perl -ne 'print if (/SPACE/i && /Camp/i )' file.txt cat file.txt | perl -ne 'print if (/SPACE/i && /Camp/i )' cat file.txt | awk 'BEGIN{IGNORECASE=1} /Space/ && /Camp/' cat file.txt | grep -i -E 'Space.*CAMP|Camp.*SPacE' time (cat file.txt | perl -ne 'print if (/SPACE/i && /Camp/i )') real 0m0.045s user 0m0.037s sys 0m0.013s time (cat file.txt | awk 'BEGIN{IGNORECASE=1} /Space/ && /Camp/' ) real 0m0.043s user 0m0.029s sys 0m0.019s