编写一个shell脚本,罗列当前路径下所有以f开头的文件名(注意:不包括文件夹)?

编写一个shell脚本,罗列当前路径下所有以f开头的文件名(注意:不包括文件夹),假设脚本名为countf.sh,那么运行countf.sh脚本后,终端按行输出f开头的文件的文件名。

你好,

情况一: 只列出当前文件夹下的以f开头的文件,不考虑子文件夹:

----------------------

#!/bin/sh
print_f(){
for i in `ls`;do
if [[ -f $i && $i =~ ^f.* ]];then
echo $i
fi
done
}
print_f

上面的格式没有了,对着图片改下格式吧:

----------------------

运行结果:

情况二: 列出当前文件夹及子文件夹下以f开头的文件:

----------------------

#!/bin/sh
print_f(){
for i in `ls $1`;do
p=$1"/"$i
name=`basename $p`
if [[ -f $p && $name =~ ^f.*$ ]];then
echo $i
fi
if [ -d $p ];then
p=$1"/"$i
print_f $p
fi
done
}
print_f `pwd`

----------------------

上面的格式没有了,对着图片改下格式吧:

运行结果:

情况三:将"情况二"中的echo $i改为echo $p,即可得到当前文件夹及子文件夹中以f开头文件的绝对路径

情况四:只输出当前文件夹中以f开头文件的绝对路径:

---------------

#!/bin/sh
print_f(){
for i in `ls`;do
if [[ -f $i && $i =~ ^f.* ]];then
echo $1'/'$i
fi
done
}
print_f `pwd`

---------------

上面代码格式没了,对着图片自己改下格式吧:

运行结果:

温馨提示:答案为网友推荐,仅供参考
相似回答