面试题答案
一键面试实现思路
- 使用
find
命令结合正则表达式来匹配文件名中日期在2023年6月之后的文件。 - 对于筛选出的文件,使用
grep
命令查找包含特定关键词(如important
)的行。 - 将
grep
查找到的结果输出到一个新文件中。
脚本代码
#!/bin/bash
# 输出结果的新文件
output_file="result.txt"
# 清空输出文件
> $output_file
# 查找文件名日期在2023年6月之后的文件,并提取包含'important'的行,输出到结果文件
find . -type f -name "file_2023[0-9][0-9].txt" -regex ".*/file_2023(0[7-9]|1[0-2])[0-9]{2}\.txt" -exec grep 'important' {} \; >> $output_file
上述脚本中:
find . -type f -name "file_2023[0-9][0-9].txt"
用于查找当前目录下文件名符合file_2023XX.txt
格式的文件。-regex ".*/file_2023(0[7-9]|1[0-2])[0-9]{2}\.txt"
这部分正则表达式用于进一步筛选出日期在2023年6月之后的文件。-exec grep 'important' {} \;
对每个找到的文件执行grep
命令查找关键词important
。>> $output_file
将grep
的结果追加到result.txt
文件中。开始时先清空了result.txt
文件以确保每次运行脚本都是新的结果。