Tente
find . -name '*.txt' -exec perl -i -pe 's/File:[^|]+\K\|[^]]+//g' {} \;
-
File:[^|]+correspondênciaFile:seguido por não|caracteres -
\Kpara que não tenhamos que capturar a string anterior e colocá-la de volta na seção de substituição -
\|[^]]+match|seguido por não]caracteres a serem excluídos - Também pode usar
sed -i '' 's/\(File:[^|]*\)|[^]]*//g'em vez deperl
Leitura adicional:
-
Por que o looping é uma má prática de saída? - Ele tem muitos detalhes sobre o uso do comando
find, incluindo o uso da opção-exec. - Quando os xargs são necessários?