É possível regex substituir a partir da linha de comando? No momento, estou usando o bloco de notas ++ para fazer isso. Na linha de comando, só posso usar o FINDSTR, que só pode localizar os arquivos / linhas mached.
EDIT:
Talvez seja possível criar um script VB e executá-lo a partir do cmd? Acabei de criar um arquivo "hi.vbs" com o conteúdo
Msgbox "Hi Buddy"
Em seguida, o cmd me permite executá-lo diretamente, digitando "oi" na linha de comando.
Portanto, se não for possível com o script em lote, eu posso usar um script VB através de lote. Ou..?
Respostas:
vá aqui
http://gnuwin32.sourceforge.net/packages.html
role para baixo até o SED. Baixe coreutils também enquanto você está nisso.
esse comando substituirá a por b globalmente e em cada linha. portanto, não apenas a primeira ocorrência na linha.
por exemplo, usando sed "s / a / b / g" a.txt
O VBScript suporta expressões regulares, você pode encontrar e substituir por ele.
Exibe bxxx dxxx xxx
fonte
Eu escrevi uma ferramenta de linha de comando gratuita para o Windows fazer isso. É chamado rxrepl , suporta Unicode e pesquisa de arquivos. Alguns podem achar uma ferramenta útil.
fonte
C:\WINDOWS\System32\cmd.exe
A equipe de scripts aborda como fazer isso no PowerShell (sem downloads adicionais nos sistemas operacionais Windows mais recentes, você provavelmente já o instalou).
Inicie, execute o seguinte (para substituir um
*
por um@
):Isso suporta expressões regulares do .NET , incluindo observações positivas e negativas, e todo tipo de coisa que o bloco de notas ++ não suportava com regex antes da versão 6.x (tanto quanto eu amo o bloco de notas ++).
fonte
Eu encontrei o fnr.exe para isso. Possui interface gráfica e linha de comando.
Visualizando opções de linha de comando
fonte
Parece que você pode usar regex com FINDSTR
findstr [Windows CMD] :
Na Ajuda do FindStr (
Findstr /?
):fonte
findstr
não pode substituir texto em arquivos!Estou um pouco atrasado para a festa, mas o JREPL.BAT é um utilitário regex baseado em scripts em lote / JScript / híbrido que roda nativamente em qualquer máquina Windows a partir do XP.
A documentação completa está embutida no script, que pode ser acessado via
JREPL /?
ou usadoJREPL /??
para saída paginada.O JREPL usa o regex ECMA padrão que acompanha o JScript. O regex ECMA não é tão poderoso quanto o regex .NET disponível para o PowerShell, mas ainda é muito bom. E acho que o usuário médio encontrará esse utilitário mais fácil de usar do que o PowerShell.
As opções integradas do JREPL já fornecem muita energia inerente, mas a capacidade de injetar o JScript fornecido pelo usuário realmente abre possibilidades surpreendentes.
Desenvolvi o script porque meu local de trabalho não permite o download de arquivos exe fora do padrão, mas não tem restrições na gravação de scripts em lote ou JScript :-)
Simplesmente siga o link e copie o código do script em um arquivo chamado JREPL.BAT. Leia as postagens subseqüentes desse segmento para obter exemplos de histórico de uso e desenvolvimento. Há também muitas respostas StackOverflow que usam JREPL.BAT.
fonte
Duas boas opções são o Cygwin, que fornecerá um ambiente semelhante ao Unix, semelhante ao bash (alternativa ao cmd.exe); e Unxutils , portas Win32 de uma coleção de utilitários Unix individuais. Nos dois pacotes, consulte 'sed', 'awk' e 'grep'.
fonte
Você também pode usar o GSAR para executar a pesquisa e a substituição da linha de comandos. Funciona com hexadecimal e binário também. Ele não fará o trabalho pesado e complexo que o regex pode executar, mas, para pesquisa e substituição básicas, ele realiza o trabalho com rapidez e facilidade.
fonte