TIP
这些是本篇文章的标签,来发现更多感兴趣的内容吧
科研
生信分析
Linux教程
B站ID:Biomamba-生信基地
来源:BV1hT411F7r7
- ls命令有其强大之处,但也有其局限性,比如说没有办法列出具体类型的文件
- 我们这节课所讨论的场景,是使用ls加通配符,在一个有很多个文件和文件夹的工作目录中,准确显示出你需要的文件类型,避免“人工搜索”
通配符
- 通配符的英文是wildcard,也就是万能牌的意思,这里我们理解为万能字符就好了
- 匹配的概念:匹配=完全等于
通配符” * “
- “ * “的含义是满足任意字符任意次
- 我们可以这样理解,对于
1
ls *ABC
- 终端会列出当前目录下,所有以ABC为结尾的文件,无论ABC前有多少个字符都会显示
- 当然,我们也可以把通配符放在其他的位置,比如
1
ls ABC*
- 这样就会显示出所有以ABC开头的文件了
通配符” ? “
- “ ? “的含义是满足任意字符一次
- 我们可以这样理解,对于
1
ls ?ABC
- 终端会列出当前目录下,所有以ABC结尾而且ABC前面只有一个字符的文件
- 可以打复数个问号,这种情况下也是一样的,问号的数量就是问号后面的字符串之前的字符的数量,比如ls ???????yaml(7个?),就会显示一个config.yaml的文件,而ls ??????yaml(6个?)就不会显示。
- 我们也可以把通配符放在其他的位置,比如
1
ls ABC.?
- 这样就会显示出所有以ABC.结尾,并且.后面只有一个字符的文件
通配符”[ ]”
- 这行命令的含义是去匹配方括号内的每一个字符中的一个,比如
1
ls [abc]*
- 的含义是,列出匹配任何一个以abc中的任何一个字母开头的内容,注意编程语言是要严格区分大小写的,由于括号内只有小写的abc,所以也只有以小写abc中任意一个字母开头的字符会被选择到
- 如果不想敲26个小写字母,也有简化的方法,比如
1
ls [a-z]*
- 对于大写字母,可以:
1
ls [A-Z]*
- 数字也是可以的
1
ls [0-9]*
通配符 ^
- 这个字符的意思是相反,也就是匹配任意一个大写字母一次,也可以写作
1
ls [^a-z]*
- 同样地,匹配任意一个小写字母一次,也可以写作
1
ls [^A-Z]
- 所有不以数字开头的文件,可以写作
1
ls [^0-9]
对于多人处理同一份数据的情况,可以拷贝这份数据并在前面加上自己的名字作为前缀,然后通过通配符来快速展示自己的数据