Frage

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

War es hilfreich?

Lösung

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 | % { "$_" }).

Andere Tipps

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top