J'apprends sed aujourd'hui. Il y a ce tilde '~' qui m'embrouille plus que tout.
Par exemple, la commande
sed -n '1~2 w output.txt' input.txt
imprime les lignes impaires (dans le fichier output.txt).
Dans le même didacticiel, il est également indiqué qu'il saute les lignes de 1 à 2, puis qu'il commence à imprimer les lignes à côté de la ligne numéro 2 au cas où nous utiliserions
sed -n '1~2 p' input.txt
Quelle est l'interprétation absolue de ce tilde?
Réponses:
Il s'agit d'une
sed
extension GNU :Vos deux exemples correspondent aux mêmes lignes, mais le premier les écrit (
w
) dans un fichier tandis que le second les imprime (p
) partout où va la sortie standard.En général, reportez-vous toujours au manuel de la commande. Le manuel est rarement ambigu. L'application d'une commande en combinant plusieurs aspects de ses fonctionnalités peut parfois être difficile à expliquer dans un didacticiel (et parfois un didacticiel essaie de rendre les choses plus faciles à comprendre en reformulant la même déclaration de plusieurs manières, ce qui pourrait conduire à la confusion), mais le manuel est la référence définitive pour chaque bit de ce que fait la commande agrégée.
la source