Yanıtlar:
+Bir olan GNU ait sedolduğunu birini veya önceki ifadenin daha eşleşir ancak OS X üzerinde sürümüdür BSDsed . MacPorts'ta bir GNU sürümü sedOS X'e taşındı . Aksi takdirde, geçici bir çözüm denemeniz gerekir.
Örneğin, bir veya daha fazla rakamla eşleştirmek için [0-9][0-9]*yerine[0-9]+
OS X'in uygulaması, sedvarsayılan olarak desteklemeyen "temel" normal ifade biçimini kullanır +. Kimden man re_format:
Obsolete (``basic'') regular expressions differ in several respects. `|'
is an ordinary character and there is no equivalent for its functional-
ity. `+' and `?' are ordinary characters, and their functionality can be
expressed using bounds (`{1,}' or `{0,1}' respectively). Also note that
`x+' in modern REs is equivalent to `xx*'. The delimiters for bounds are
`\{' and `\}', with `{' and `}' by themselves ordinary characters. The
parentheses for nested subexpressions are `\(' and `\)', with `(' and `)'
by themselves ordinary characters. [...]
Ne yapabilirsin? Eh, bir olasılık, sedmodern formatı -Eanahtarla birlikte kullanmayı söylemektir . Ancak bu, (takas, örneğin uyacak şekilde RE diğer bölümlerini yeniden yazmak sizi zorlayabilir \( ... \)ile ( ... )). Başka bir seçenek, yukarıda önerilen alternatif formlardan birini kullanmaktır. Burada "A" ve ardından bir veya daha fazla "B" veya "C", ardından "D" ile eşleştirmek için çeşitli yaklaşımları kullanan örnekler verilmiştir:
sed -E 's/A[BC]+D/[match]/'
sed 's/A[BC]\{1,\}D/[match]/'
sed 's/A[BC][BC]*D/[match]/'
echo $'aaa\na\nb' | sed -n '/a\{1,\}/p'