你好,
情况一: 只列出当前文件夹下的以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`
---------------
上面代码格式没了,对着自己改下格式吧:
运行结果:
有如下几种方法:1)一行行地echo重定向
2)echo -e + 多行,重定向
3)用Here Document方式(具体参见:>
这不一行命令就搞定了吗:
ls -lS | awk '{print " " }'
你可以将它保存为一个 shell 脚本。
命令运行截图
ls -lS 的作用是查看文件信息,并以文件大小降序。
awk '{print $9 " " $5}' 的作用是从这些信息中过滤出文件名和文件大小,以空格隔开。
cdxx
for
name
in
c;do
mv
$name
/work/${name%c}app
#仅对xx目录的c文件有效,希赛里有很多脚本编程知识的。我都是去那里看的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)