"Ambos na mesma linha" significa "'arroz' seguido por caracteres aleatórios seguidos por 'limão' ou o contrário".
Na regex, que é rice.*lemon ou lemon.*rice . Você pode combinar isso usando um | :
grep -E 'rice.*lemon|lemon.*rice' some_file
Se você quiser usar o regex normal em vez dos estendidos normais ( -E ), precisará de uma barra invertida antes do | :
grep 'rice.*lemon\|lemon.*rice' some_file
Para mais palavras que ficam um pouco mais demoradas e geralmente é mais fácil usar várias chamadas de grep , por exemplo:
grep rice some_file | grep lemon | grep chicken