Tente
find . -name '*.txt' -exec perl -i -pe 's/File:[^|]+\K\|[^]]+//g' {} \;
-
File:[^|]+
correspondênciaFile:
seguido por não|
caracteres -
\K
para 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?