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

编写一个shell脚本,罗列当前路径下所有以f开头的文件名(注意:不包括文件夹),假设脚本名为countf.sh,那么运行countf.sh脚本后,终端按行输出f开头的文... 编写一个shell脚本,罗列当前路径下所有以f开头的文件名(注意:不包括文件夹),假设脚本名为countf.sh,那么运行countf.sh脚本后,终端按行输出f开头的文件的文件名。 展开
 我来答
百度网友023b1c3
科技发烧友

2020-03-23 · 智能家居/数码/手机/智能家电产品都懂点
知道小有建树答主
回答量:1086
采纳率:84%
帮助的人:285万
展开全部

你好,

情况一: 只列出当前文件夹下的以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`

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

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

运行结果:

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式