|
发表于 2005-7-1 21:49:32
|
显示全部楼层
楼主的意思是不是这个文件名是不确定的,主要是为了在shell脚本中用(比如遍历一个目录中所有的文件,然后去掉每个文件的扩展名)。如果文件名放在变量FILENAME中,那么这样:
echo $FILENAME | awk -F. '{print $1}'
就可以了。
要得到这个文件名的话:
MFILENAME=`echo $FILENAME | awk -F. '{print $1}'`
注意两边是反单引号。
特别是有些光盘上的html文档,由于制作光盘的人没有敬业精神,没有考虑光盘的文件系统格式。比如:一个html文档,本来文件扩展名是html,但是由于用的光盘文件系统的文件名是8.3(即文件中限制在8个字符,扩展名限制在3个字符),那么会出现xxx~1.htm这种情况,导致链接无效。就可以写个脚本,核心代码如下:
for E_FILENAME in `ls -d *`
do
if echo $E_FILENAME | grep "~" > /dev/null 2>&1; then
M_FILENAME=`echo $E_FILENAME | awk -F~ '{print $1}'`
FILENAME=$M_FILENAME".html"
else
FILENAME=$E_FILENAME
fi
mv $E_FILENAME $FILENAME
done
当然,如果涉及到子目录中的文件,就还要加代码。 |
|