De acordo com esta resposta sed pode filtrar linhas pelo tamanho:
sed -e '/.\{120\}/!d'[…] matches lines that don't have (at least) 120 characters (the
!after the expression is to execute the command on lines that don't match the pattern before it), and deletes them (ie. doesn't print them).
sed -i funciona no lugar. Isso leva a uma abordagem a seguir:
cp -a original_dir/ modified_dir/
find modified_dir/ -type f -exec sed -i -e '/.\{80\}/!d' {} +
Agora, todos os arquivos de original_dir/ têm sua versão modificada em modified_dir/ .
Como alternativa, você pode trabalhar totalmente dentro do original_dir/ , informando sed para salvar arquivos antigos com um sufixo:
find original_dir/ -type f -exec sed -i.old -e '/.\{80\}/!d' {} +
Nesse caso, se você usar -i em vez de -i.old , os arquivos antigos serão perdidos.