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.