安全地查找与模式和文字匹配的文件

时间:2010-11-22 09:32:20

标签: regex bash grep

给定像'prefix.extension'这样的文件名,我想找到模式prefix\.\d\d\.extension的所有文件。鉴于“前缀”或“扩展名”可能包含.*\n之类的文字字符串,我能想到的唯一方法就是转义“前缀”和“前缀”中的所有字符扩展名',在\.\d\d\.之前和之后放置它们,以及egrep - 它。是否有一种更优雅的方式来执行此操作和/或以一种简单的方式在Bash脚本中转义egrep的所有特殊字符?

请注意,在每个字符前加一个反斜杠会改变某些字符的语义,例如\w

1 个答案:

答案 0 :(得分:0)

结果grep --perl-regexp \Q and \E做我需要的事情:

ls -1N -- "${source_dir}" | grep -P "^\Q${source_base}.\E\d\{${fragment_digits}\}\Q.${source_extensions}\E\$"