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.

Reply via email to