Com grep -Pv '[
, você está pedindo linhas que não ( %code% ) contenham um caractere ASCII. Não é a mesma coisa que linhas que contêm um caractere não ASCII. Basta perguntar por isso. -v
-\x7f]'
LC_ALL=C grep -lP '[^LC_ALL=C grep -l '[^[:print:]]'
-\x7f]'
Em vez de um intervalo de pontos de código, você pode solicitar caracteres não imprimíveis em uma localidade ASCII. Isso é quase equivalente (também inclui caracteres de controle).
LC_ALL=C grep -vlP '^[LC_ALL=C grep -lP '[^LC_ALL=C grep -l '[^[:print:]]'
-\x7f]'
-\x7f]*$'
Uma maneira equivalente e mais complicada é procurar por linhas que são inteiramente compostas de caracteres ASCII e inverter a correspondência.
LC_ALL=C grep -vlP '^[%pre%-\x7f]*$'