ala*_*aup 1 regex sed regex-group
我想匹配使用sed和regex通过管道传递的多个文件扩展名.
以下作品:
sed '/.\(rb\)\$/!d'
Run Code Online (Sandbox Code Playgroud)
但是,如果我想允许多个文件扩展名,下面也不能正常工作.
sed '/.\(rb\|js\)\$/!d'
sed '/.\(rb|js\)\$/!d'
sed '/.(rb|js)\$/!d'
Run Code Online (Sandbox Code Playgroud)
关于如何做/或内组的任何想法?
这是整个代码块:
#!/bin/sh
files=`git diff-index --check --cached $against | # Find all changed files
sed '/.\(rb\|js\)\$/!d' | # Only process .rb and .js files
uniq` # Remove duplicate files
Run Code Online (Sandbox Code Playgroud)
我使用的是Mac OSX 10.8.3,之前的回答对我不起作用,但这样做:
sed -E '/\.(rb|js)$/!d'
Run Code Online (Sandbox Code Playgroud)
注意:使用-E来
将正则表达式解释为扩展(现代)正则表达式而不是基本正则表达式(BRE).
这启用了OR功能|; 其他版本似乎希望该-r标志启用扩展正则表达式.请注意,.必须转义首字母并且$不得跟踪尾部.