Про grep <string> <file>|head -n1
догадался, но работает долго и я не совсем понимаю как отрабатывает пайп, grep передает ему все строки которые нашел, а head уже отбирает первую или grep передает построчно и head убивает grep после первого совпадения (звучит невероятно, но мало ли)?