Pergunta

This works

Perl -pi.bak -e "s/\\t/\t/g;" one.xml

But this doesnt work for all xmls in the folder

Perl -pi.bak -e "s/\\t/\t/g;" *.xml

Keep getting error cannot open *.xml

Have tried all sorts of things and recognise the * as a wildcard

Foi útil?

Solução

You are seeing the cannot open *.xml because, unlike Unix shells, the Windows CMD shell does not expand wild cards.

If you want to stay with cmd, you can form a for loop over files or you could switch to something more powerful like PowerShell and try this (untested): Perl -pi.bak -e "s/\\t/\t/g;" (Get-ChildItem *.xml | % { "$_" }).

Outras dicas

Unfortunately, windows cmd does not have the same power to expand wildcards as unix shells.

You can work around this though, by telling perl that you want to expand @ARGV using a glob

perl -i.bak -pe "BEGIN {@ARGV = map glob, @ARGV} s/\\t/\t/g;" *.xml
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top