इस कार्य के लिए मैं कुछ लिपियों का उपयोग कर रहा हूँ:
#!/bin/ksh
# Name : unspace - replace spaces by underscores in file names
# Usage : unspace [file ...]
# Example : unspace *.doc
unspace()
{
ls "$@" | while a=$(line)
do
file=$(echo $a | grep " ")
if [ -n "$file" ]
then
file="$(print "$file" | sed 's/ /_/g')"
print "$a" "->" "$file"
mv "$a" "$file"
fi
done
}
[[ "$(basename $0)" = unspace ]] && unspace "$@"
निम्नलिखित एक वर्तमान निर्देशिका के तहत सभी नामों को पुनरावर्ती रूप से तय कर रहा है। ध्यान दें कि यदि निर्देशिका नामों में एम्बेडेड स्थान भी हैं तो भी इसे कुछ काम करने की आवश्यकता है।
#!/bin/ksh
find . |
while a=$(line)
do
newName="$(print $a | tr ' ' '_')"
if [ "$a" != "$newName" ]
then
mv "$a" "$newName"
print $a moved
else
print $a unchanged
fi
done