给定像'prefix.extension'这样的文件名,我想找到模式prefix\.\d\d\.extension
的所有文件。鉴于“前缀”或“扩展名”可能包含.*
,\n
之类的文字字符串,我能想到的唯一方法就是转义“前缀”和“前缀”中的所有字符扩展名',在\.\d\d\.
之前和之后放置它们,以及egrep
- 它。是否有一种更优雅的方式来执行此操作和/或以一种简单的方式在Bash脚本中转义egrep
的所有特殊字符?
请注意,在每个字符前加一个反斜杠会改变某些字符的语义,例如\w
。
答案 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\$"