Я использую GNU Make 3.81, и у меня в файле Makefile есть следующее правило:
jslint :
java org.mozilla.javascript.tools.shell.Main jslint.js mango.js \
| sed 's/Lint at line \([0-9]\+\) character \([0-9]\+\)/mango.js:\1:\2/'
Это прекрасно работает, если я ввожу его непосредственно в командной строке, но регулярное выражение не совпадает, если я запускаю его с помощью "make jslint". Однако, это работает, если я заменю \+
на \{1,\}
в Makefile:
jslint :
java org.mozilla.javascript.tools.shell.Main jslint.js mango.js \
| sed 's/Lint at line \([0-9]\{1,\}\) character \([0-9]\{1,\}\)/mango.js:\1:\2/'
Есть ли какое-то особое значение для \+
в Makefiles, или это ошибка?