regex - regulares - ¿Cómo puedo insertar un carácter de tabulación con sed en OS X?
expresiones regulares ejemplos (5)
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
El sed
de OSX solo comprende no lo comprende en absoluto, ya que es esencialmente el antiguo 4.2BSD /t
en el patrón, no en el reemplazo,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.
Intenta: Ctrl + V y luego presiona Tab .
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"
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''
prueba awk
echo -e "egg/t /t/t salad" | awk ''{gsub(/[[:blank:]]+/,"/t");print}''