Comment puis-je insérer un caractère de tabulation avec sed sur OS X?
J'ai essayé:
echo -e "egg\t \t\t salad" | sed -E 's/[[:blank:]]+/\t/g'
Qui se traduit par:
eggtsalad
Et...
echo -e "egg\t \t\t salad" | sed -E 's/[[:blank:]]+/\\t/g'
Qui se traduit par:
egg\tsalad
Ce que je voudrais:
egg salad
Vous devez vous connecter pour publier un commentaire.
Essayer: Ctrl+V, puis appuyez sur Tab.
fish
shellUtiliser ANSI-C style de citer:
$'string'
Donc dans votre exemple, il suffit d'ajouter un
$
:OSX est
sed
ne comprendne pas comprendre\t
dans le modèle, pas en remplacement\t
à tous, puisque c'est essentiellement l'ancienne 4.2 BSDsed
gauche plus de de 1982 ou thenabouts. Utiliser un littéral onglet (qui enbash
etvim
estCtrl
+V
,Tab
), ou d'installer GNUcoreutils
pour obtenir un plus raisonnablesed
."
citations, le shell va avoir traité la barre oblique inverse etsed
de ne pas le voir. Avecsed
, et regexes en général,'
citant est fortement conseillée.sed
que a un peu plus intelligent que la 4.2 BSD, mais, en fait, le seul caractère d'échappement, il prend en charge est\n
.sed
l'usage de Linux.)sed
à partir de 1982, car alors il ne serait pas comprendre[[:blank:]]
. POSIX ne décrivent\t
soutien danssed
. Par conséquent, il serait non conforme à l'appui que. La conversion de\t
à onglet sauts de scripts shell qui s'appuient sursed
pas pour le faire.Une autre option est d'utiliser
$(printf '\t')
pour insérer un onglet, par exemple:Ctrl+V Tab
puisque vous pouvez copier et coller l'intégralité de la commande et de les partager plus facilement sans perdre le caractère de contrôle.essayer awk