¿Cómo puedo insertar un carácter de tabulación con sed en OS X?

Yo he tratado:

echo -e "egg\t \t\t salad" | sed -E 's/[[:blank:]]+/\t/g' 

Lo que resulta en:

 eggtsalad 

Y…

 echo -e "egg\t \t\t salad" | sed -E 's/[[:blank:]]+/\\t/g' 

Lo que resulta en:

 egg\tsalad 

Lo que me gustaría:

 egg salad 

Intenta: Ctrl + V y luego presiona Tab .

El sed de OSX solo comprende \t en el patrón, no en el reemplazo, no lo comprende en absoluto, ya que es esencialmente el antiguo 4.2BSD sed sobrante de 1982 o los naftos. Use una pestaña literal (que en bash y vim es Ctrl + V , Tab ), o instale GNU coreutils para obtener un sed más razonable.

Use las cotizaciones de estilo ANSI-C: $'string'

 sed $'s/foo/\t/' 

Entonces en tu ejemplo, simplemente agrega un $ :

 echo -e "egg\t \t\t salad" | sed -E $'s/[[:blank:]]+/\t/g' 

Otra opción es usar $(printf '\t') para insertar una pestaña, por ejemplo:

 echo -e "egg\t \t\t salad" | sed -E "s/[[:blank:]]+/$(printf '\t')/g" 

prueba awk

 echo -e "egg\t \t\t salad" | awk '{gsub(/[[:blank:]]+/,"\t");print}'