Hello, I usually edit file names with a 'for' statement, so i can replace spaces and other problematic characters without effort. But today I needed to change names keeping spaces and I found something weird. Let be two files: 'Plan 9' and 'Plan B'. In a korn or bourne shell I can do something like:
$ for i in Plan*; do a=`echo $i | 9 sed s'/lan/LAN/g'`; cp "$i" "$a"; done without problems with spaces. In Plan9 I've tried term% ifs='\n' for(i in Plan*){cp $i `{echo $i | sed 's/lan/LAN/'}} cp: can't create PLAN 9 : bad character in file name: 'PLAN 9 ' cp: can't create PLAN B : bad character in file name: 'PLAN B ' ' So the last newline character is added to the file name... I tried typing a literal newline in the ifs variable and it works: term% ifs=' ' for(i in Plan*){cp $i `{echo $i | sed 's/lan/LAN/'}} term% ls P* 'PLAN 9' 'PLAN B' 'Plan 9' 'Plan B' With p9p is the same. I'll appreciate If anyone can tell me why. trebol.