As coisas são muito fáceis com um bom utilitário de expressões regulares. Certamente python pode lidar com isso, mas JREPL.BAT pode fornecer uma solução ainda mais simples . É um utilitário baseado em script puro (JScript / batch híbrido) que é executado nativamente em qualquer máquina Windows. Simplesmente copie o script para uma pasta listada no seu PATH.
Suponho que cada nome de arquivo tenha < = 8 caracteres de comprimento e você deseja preservar o alinhamento da coluna existente em cada linha de saída.
Minhas soluções abaixo assumem que você deseja sobrescrever o arquivo original, chamá-lo test.txt e você tem o JREPL.BAT em uma pasta listada em seu PATH.
Se cada linha for uma linha AS que deve ser modificada e preservada, ou uma linha BA que deve ser eliminada, tudo o que você precisa é o seguinte (usei continuação de linha ^
apenas para facilitar a leitura do código ):
call jrepl "^(... )AS (.*FROM CLIP NAME: (.*?)\..*)$"^
"$1+($3+' ').slice(0,8)+$2"^
/jmatch /f test.txt /o -
Se sua entrada incluir linhas adicionais que não sejam AS ou BA que devem ser preservadas, você poderá usar:
call jrepl "^(... )AS (.*FROM CLIP NAME: (.*?)\..*)$|^... (?!BA).*$"^
"$2+($4+' ').slice(0,8)+$3|$0"^
/t "|" /jmatch /f test.txt /o -
A documentação completa está incorporada no JREPL.BAT.