用shell编辑一个脚本,完成如下功能,对于一个文件夹下面的所有文件,对于有.dat结尾的,不变,
对于没有.dat结尾的,加一个.dat结尾
小弟初学此技术,一点思路都没有,苦恼不已,希望得到高手指点,我愿拜各位高手为师,彻底明白这道题,小弟先有礼了!
我的E-mail&MSN:zhengweiorg@hotmail.com
QQ:188921225
10 个解决方案
#1
#!/bin/sh
_fs=`ls`
for _f in ${_fs}; do
echo ${_f} | grep -q ".\.dat$"
if [ "$?" = "0" ]; then
echo ${_f}
else
echo mv ${_f} ${_f}.dat
fi
done
_fs=`ls`
for _f in ${_fs}; do
echo ${_f} | grep -q ".\.dat$"
if [ "$?" = "0" ]; then
echo ${_f}
else
echo mv ${_f} ${_f}.dat
fi
done
#2
ls |while read name
do
tmp=`echo $name|grep .sh`
if [ -z $tmp ]
then
newname=$name".sh"
mv $name $newname
fi
done
do
tmp=`echo $name|grep .sh`
if [ -z $tmp ]
then
newname=$name".sh"
mv $name $newname
fi
done
#3
简化一下二楼的方法
#!/bin/sh
_fs=`ls | grep -q ".\.dat$"`
for _f in ${_fs}
do
mv ${_fs} ${_fs}.dat
done
#!/bin/sh
_fs=`ls | grep -q ".\.dat$"`
for _f in ${_fs}
do
mv ${_fs} ${_fs}.dat
done
#4
再简化一下吧:
find . -depth 1 -type f ! -name "*.dat" -exec echo {} {}.dat \;
find . -depth 1 -type f ! -name "*.dat" -exec echo {} {}.dat \;
#5
这个算不上简化, 也是种方法吧。
ls|grep -v *.dat | xargs -I '{}' mv '{}' '{}'.dat
ls|grep -v *.dat | xargs -I '{}' mv '{}' '{}'.dat
#6
赞楼上,学习了!
#7
学习了。
#8
qiang
#9
学习了
#10
高手们呀,加我的QQ 6663315
我想找个老师。谢谢你们啊。
帮我带进SHELL。谢谢加我啊`
我想找个老师。谢谢你们啊。
帮我带进SHELL。谢谢加我啊`
#1
#!/bin/sh
_fs=`ls`
for _f in ${_fs}; do
echo ${_f} | grep -q ".\.dat$"
if [ "$?" = "0" ]; then
echo ${_f}
else
echo mv ${_f} ${_f}.dat
fi
done
_fs=`ls`
for _f in ${_fs}; do
echo ${_f} | grep -q ".\.dat$"
if [ "$?" = "0" ]; then
echo ${_f}
else
echo mv ${_f} ${_f}.dat
fi
done
#2
ls |while read name
do
tmp=`echo $name|grep .sh`
if [ -z $tmp ]
then
newname=$name".sh"
mv $name $newname
fi
done
do
tmp=`echo $name|grep .sh`
if [ -z $tmp ]
then
newname=$name".sh"
mv $name $newname
fi
done
#3
简化一下二楼的方法
#!/bin/sh
_fs=`ls | grep -q ".\.dat$"`
for _f in ${_fs}
do
mv ${_fs} ${_fs}.dat
done
#!/bin/sh
_fs=`ls | grep -q ".\.dat$"`
for _f in ${_fs}
do
mv ${_fs} ${_fs}.dat
done
#4
再简化一下吧:
find . -depth 1 -type f ! -name "*.dat" -exec echo {} {}.dat \;
find . -depth 1 -type f ! -name "*.dat" -exec echo {} {}.dat \;
#5
这个算不上简化, 也是种方法吧。
ls|grep -v *.dat | xargs -I '{}' mv '{}' '{}'.dat
ls|grep -v *.dat | xargs -I '{}' mv '{}' '{}'.dat
#6
赞楼上,学习了!
#7
学习了。
#8
qiang
#9
学习了
#10
高手们呀,加我的QQ 6663315
我想找个老师。谢谢你们啊。
帮我带进SHELL。谢谢加我啊`
我想找个老师。谢谢你们啊。
帮我带进SHELL。谢谢加我啊`