写一个shell脚本获取文件名 传入参数 根据参数 筛选出文件夹中文件名包含该参数的文件名

写一个shell脚本 传入参数 根据参数 筛选出文件夹中文件名包含该参数的文件名_百度知道shell程序中怎么获取调用参数?_百度知道编写shell脚本,利用位置参数携带一个文件名,判断该文件在当前目录下是否存在且是一个普通文件_百度知道Shell(3)
find是Unix/Linux命令行工具中最棒的工具之一。该命令对于编写shell脚本所起到的功能不可小视,但是多数人却午饭最大程度发挥它的功效,下面介绍find一些常见的用法。
1.基本用法:
# find base_path
查找base_path路径下的所有文件。
2.根据文件名或者正则表达式进行搜索
-name:指定文件名所必须匹配的字符串,可以将通配符作为参数使用。
-iname:与name类似,只是忽略字母大小写。
-o:or条件操作,匹配多个条件中的一个
-path::使用通配符来匹配文件路径
!:否定参数含义
find . -name &*.txt&
#查找当前目录下后缀名为txt的文件
\( -name &*.txt& -o name &*.pdf& \)
#打印出所有.txt和.pdf文件,因为find命令能够匹配所有两类文件。
#\)以及\)将用于-name &*.txt& -o -name &*.pdf&
find . ! -name &*.txt&
#匹配所有不以.txt结尾的文件名。
3.基于目录深度的搜索
-maxdepth:指定最大查找深度,即最大向指定目录下面搜索maxdepth级
-mindepth:指定最小查找深度,即从指定目录下面第mindepth级目录开始搜索
find . -mindepth 2 -name &f*&
4.根据文件类型搜索
Unix类系统都将一切视为文件。文件具有不同的类型,例如普通文件、目录、字符设备、块设备、符号链接、硬链接、套接字以及FIFO等。
-type:找到对应类型的文件
find . -type d
find . -type f
#当前目录下查找目录
#当前目录下查找文件
5.根据文件时间进行搜索
访问时间(-atime):用户最近一次访问文件的时间
修改时间(-mtime):文件内容最后一次被修改的时间
变化时间(-ctime):文件元数据(例如权限和所有权)最后一次改变的时间
-atime,-mtime,-ctime可作为find的时间选项。它们可以用真数值指定,单位是天,&-&表示小于,&+&表示大于。
#打印出最近7天内被访问过的文件:
find . -type f -atime -7
#打印出恰好7天前被访问过的所有文件:
find . -type f -atime 7
#打印出访问时超过7天的所有文件:
find . -type f -atime +7以下几个参数是以分钟为单位:
-newer:指定一个用于比较时间戳的参考文件:
#找出比file.txt修改时间更近的所有文件:
find . -type f -newer file.txt
6.基于文件大小的搜索
根据文件大小可以这么搜索:
#找到大于2KB的文件
find . -type f -size +2k
#找到小于2KB的文件
find . -type f -size -2k
#找到大小等于2KB的文件
find . -type f -size 2k·b------块(512Bytes)
·c------Byte
·w------word(2Bytes)
·k------1014Bytes
·M-----1024KB
·G------1024MB
7.删除匹配的文件
#删除当前目录下所有的.swp文件:
find . -type f -name &*.swp& -delete
8.利用find执行命令或者动作
find命令可以借助选项-exec与其他命令进行结合。-exec算得上是find最强大的特性之一。
示例:将给定目录中的所有C程序文件拼接起来写入单个文件all_c_files.txt
find . -type f -name &*.c& -exec cat {} \; & all_c_files.txt&{}&是一个与&-exec&选项搭配使用的特殊字符串。对于每一个匹配的文件,&{}&会被替换成相应的文件名。
参考资料:《Linux Shell脚本攻略》
Author:忆之独秀
注明出处:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:68607次
积分:1463
积分:1463
排名:千里之外
原创:77篇
评论:34条
(3)(2)(1)(1)(5)(2)(2)(2)(2)(1)(4)(1)(4)(11)(2)(3)(4)(2)(2)(1)(2)(1)(6)(7)(4)(3)(2)(1)Shell脚本通过参数传递调用指定函数_Linux编程_Linux公社-Linux系统门户网站
你好,游客
Shell脚本通过参数传递调用指定函数
来源:Linux社区&
作者:tanzhangwen
我们在写一些功能性Shell脚本的时候,往往会把操作相似或者参数类似行为接近的函数放在同一个shell脚本中,这样管理方便,维护简单,也很清晰。对于这种情况,通常的办法是,在shell脚本中定义所有用到的函数,然后在正文代码中用case语句读入输入的命令函数参数来调用指定的相应函数。这样就达到一个shell脚本使用的强大功能。
Shell编程浅析 &
Linux Shell参数替换
Shell for参数
Linux/Unix Shell 参数传递到SQL脚本
Shell脚本中参数传递方法介绍
Shell脚本传递命令行参数
Linux Shell 通配符、转义字符、元字符、特殊字符
下面以一个简单的例子来说明。一个计算器提供了加减乘除的功能:
&#!/bin/bashusage="Usage: `basename $0` (add|sub|mul|div|all) parameter1 parameter2"command=$1first=$2second=$3function add() {& & & & ans=$(($first + $second))& & & & echo $ans}function sub() {& & & & ans=$(($first - $second))& & & & echo $ans}function mul() {& & & & ans=$(($first * $second))& & & & echo $ans}function div() {& & & & ans=$(($first / $second))& & & & echo $ans}case $command in& (add)& &
add& &;& (sub)& &
sub& &;& (mul)& &
mul& &;& (div)& &
div& &;& (all)& &
div& &;& (*)& &
echo "Error command"& &
echo "$usage"& &;esac
上面的这段shell脚本,我们就可以通过传入不同的参数调用达到不同的目的。
[hdfs@cdhonf]$ ./calculator add 2 35[hdfs@cdhonf]$ ./calculator sub 2 3-1[hdfs@cdhonf]$ ./calculator mul 2 36[hdfs@cdhonf]$ ./calculator div 2 30[hdfs@cdhonf]$ ./calculator all 2 35-160[hdfs@cdhonf]$ ./calculator a 2 3Error commandUsage: calculator (add|sub|mul|div|all) parameter1 parameter2
倘若我们不想每个函数都用同样个数的参数,也就是不同的函数参数不一样时候怎么办?这时候我们可以在函数体的内部读入参数,然后在case后的相应调用语句时候也传入相应的参数。
function double() {& & & & ans=$(($1 + $1))& & & & echo $ans}case $command in& (dou)& &
double "$first"&
#you can also use "$2"& &;
本文永久更新链接地址:
相关资讯 & & &
& (03月29日)
& (11/19/:43)
& (08月16日)
& (12/21/:37)
& (11/19/:52)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款}

我要回帖

更多关于 shell脚本文件名匹配 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信