OS X jest obecnie wyposażony w wersję FreeBSD sed z 2005 roku. Większość poniższych różnic dotyczy także innych wersji BSD sed.
Zastosowania sed OS X dla zastosowań -EERE i GNU sed -r. -Eto alias dla -rGNU sed (dodany w 4.2, nieudokumentowany do 4.3). Nowsze wersje FreeBSD i NetBSD sed obsługują zarówno -Ei -r. OpenBSD sed obsługuje tylko -E.
-i ''działa z sed OS X, ale nie z GNU sed. -iwspółpracuje z GNU sed, najnowszymi wersjami NetBSD, OpenBSD sed, ale nie sed OS X. -i -ewspółpracuje z obydwoma, ale w przypadku FreeBSD sedwykonuje kopię zapasową oryginalnego pliku z -edopisaniem do nazwy pliku (i musisz przekazać nie więcej niż jedno wyrażenie sed).
GNU sed interpretuje sekwencje, takie jak \t, \n, \001, \x01, \w, i \b. Sed OS X i POSIX sed interpretują tylko \n(ale nie w części zamiennej s).
GNU sed interpretuje \|, \+oraz \?w BRE ale sed i POSIX sed OS X za nie. \(, \), \{, I \}są POSIX BRE.
GNU sed pozwala na pomijanie ;lub nową linię wcześniej, }ale sed OS X nie.
i(wstaw), a(dołącz) i c(zmień) muszą być poprzedzone odwrotnym ukośnikiem i nową linią w sed OS X i POSIX sed, ale nie w GNU sed. Sed GNU dodaje brakujący przełamane po tekście włożonej przez i, alub cale OS X sed nie. Na przykład sed 1iajest GNU alternatywą dla sed $'1i\\\na\n'.
Na przykład printf a|sed -n pdodaje nową linię w sed OS X, ale nie w GNU sed.
Sed OS X nie obsługuje modyfikatorów I(bez uwzględniania wielkości liter) ani M(wielu linii). Nowsze wersje wsparcia dla FreeBSD sed I.
Sed OS X nie obsługuje -s( --separate), -u( --unbuffered) ani -z( --null-data).
Jedną z opcji BSD, która nie jest obsługiwana przez GNU sed -a, jest wdodanie pliku do pliku zamiast obcięcia go.
Przykłady poleceń GNU sed, które nie działają z sed OS X:
sed /pattern/,+2d # like `sed '/pattern/{N;N;d;}'`
sed -n 0~3p # like `awk NR%3==0`
sed /pattern/Q # like `awk '/pattern/{exit}1'` or `sed -n '/pattern/,$!p'`
sed 's/\b./\u&/g' # \u converts the next character to uppercase
sed 's/^./\l&/' # \l converts the next character to lowercase
sed -i '1ecat file_to_prepend' file # e executes a shell command
sed -n l0 # 0 disables wrapping
sedSam GNU jest zgodny, ponieważ pozwala na rzeczy dozwolone (ale nie wymagane, nieokreślone) przez standard. Są przypadki, w których jest niezgodny i gdziePOSIXLY_CORRECTmoże pomóc uruchomienie go w środowisku. Podobnie jak w przypadkus/[\n]//gtego, należy usunąć luz inznaki, ale zamiast tego usunąć nowe linie. Lub zachowanieNpolecenia w ostatnim wierszu.