正则表达式不适用于grep

时间:2017-09-29 21:41:27

标签: regex bash grep

尝试使用此正则表达式在file.txt中搜索文件名:([\w.-]+)[.]\w+/gm 在regexr.com上它运行良好,但当我尝试使用grep使用此命令找到它们时,我什么也得不到:

grep -E "([\w.-]+)[.]\w+/gm" file.txt

我做错了什么?

输入:

hello.py fasdfasdf
fadsfsdf
f
file.docx fsdfasdf
fadsfsdf.fds
FILE.mp3

输出:

hello.py
file.docx
fadsfsdf.fds
FILE.mp3

1 个答案:

答案 0 :(得分:1)

\w是Perl扩展名;使用-P选项与grep(如果支持),或使用标准正则表达式代替:

grep -E '([[:alpha:].-]+)[.][[:alpha:]]+/gm' file.text