Zdravím vespolek,
Prosím o nakopnutí s následujícím problémem. V GNU bash, version 5.2.15(3)-release-(x86_64-pc-cygwin) se mění příkazy spouštěné ze souboru cmd.
Příklad1:
do souboru vse4a.cmd je vložen následující řádek:
gawk -F, -v ORS="," '{print $1} END {ORS="\n"; print ""}' >>output2.txt output1.txt
ale při spuštění vse4a.cmd se do konzole vypíše:
gawk -F, -v ORS="," '{print $1} END {ORS="\n"; print ""}' output1.txt 1>>output2.txt
-prohodi se ">>output2.txt" s "output1.txt" a přidá se " 1" před ">>"
Příklad2:
do souboru vse4a.cmd je vložen následující řádek:
gawk -F, -v ORS="," '{for (i=1; i<=NF; i++) {sub(/_20[1-2][0-9]-.*/,"",$i);sub(/_save.*/,"",$i); print $i}} END {ORS="\n"; print ","}' >>output2.txt output1.txt
ale při spuštění vse4a.cmd se do konzole vypíše:
gawk -F, -v ORS="," '{for (i=1; i; i++) {sub(/_20[1-2][0-9]-.*/,"",$i);sub(/_save.*/,"",$i); print $i}} END {ORS="\n"; print ","}' output1.txt 0<NF 1>>output2.txt
-přesune(?) a změní se "<=NF" z cyklu for mezi prohozené "output1.txt" , ">>output2.txt" v podobě "0<NF" a před "<<" se vloží " 1"
Co a proč se to děje? Jsou snad některé znaky z cmd souboru vpisované do console brány jako formátovací pro text? (stdin > stdout?)
Pozn: vse4a.cmd vypsaný přes cat je vypsaný v pořádku beze změn.
Předem děkuji za odpověď.