diesel a écritDonc, si je veux ajouter un "\t" avant tutu, je comprends bien qu'il faille deux anti slash (j'ai d'ailleurs essayé), mais je ne comprends toujours pas pourquoi trois.
Moi c'est le sens de ce « Donc » que je ne comprends pas : il n'y a pas d'implication entre l'exemple que tu donnes et le fait qu'il faille un, deux ou dix antislashs pour insérer une tabulation en début de ligne.
Ce qui est absent de mon « explication » (sommaire, j'admets) donnée en #4, c'est effectivement ce que dit nany en #6 : la commande
a de
sed prend le premier antislash pour elle.
Donc, si on veut insérer une tabulation en début de ligne, il faut mettre
deux antislashs, comme ceci :
$ sed '3a\\ttutu' toto
sfhj
qgh
qdgh
tutu
qdgh
$
Mais là, j'ai utilisé des guillemets simples.
Si maintenant j'utilise des guillemets doubles, ils vont prendre les deux antislashs pour n'en faire qu'un avant que
sed ait le temps de s'en emparer (c'est ça que je dis en #4) :
$ sed "3a\\ttutu" toto
sfhj
qgh
qdgh
ttutu
qdgh
$
Donc, il faut en mettre
quatre : deux qui n'en font qu'un pour la commande
a de
sed, et deux qui n'en font qu'un pour la tabulation :
$ sed "3a\\\\ttutu" toto
sfhj
qgh
qdgh
tutu
qdgh
$
Mais en fait, on peut se contenter d'en mettre
trois, car alors les guillemets doubles vont n'en faire qu'un à partir des deux premiers, en laissant le troisième tranquille car il est succédé par
t :
$ echo "\\\\t"
\\t
$ echo "\\\t"
\\t
$ echo '\\t'
\\t
$
Ma réponse en #4 avait l'avantage d'être courte ! 😃