MST

星途 面试题库

面试题:Bash通配符与正则表达式的复杂匹配

有一个目录包含多种文件,文件名格式类似`file_2023_01.txt`、`report_2022_12.csv`等,要求使用Bash通配符筛选出2023年的文件。另外,对于一个包含多行文本的文件content.txt,其中每行格式为`user:password:email`,请用正则表达式提取出所有合法的邮箱地址(合法邮箱地址格式为:字母、数字、下划线、点号、减号组成,以@分隔,后面是域名,域名由字母、数字、点号组成,顶级域名长度为2 - 6),并给出Bash命令实现。
29.2万 热度难度
编程语言Bash

知识考点

AI 面试

面试题答案

一键面试
  1. 筛选2023年的文件: 在Bash中,可以使用通配符*来匹配文件名中的任意字符。筛选2023年的文件命令如下:
    ls *2023_*
    
  2. 提取合法邮箱地址: 合法邮箱地址的正则表达式可以写成:^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$。 在Bash中,可以使用grep命令结合这个正则表达式来提取content.txt中的合法邮箱地址,命令如下:
    grep -oE '^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$' content.txt
    
    这里-o选项表示只输出匹配的部分,-E选项表示使用扩展正则表达式。