J'ai une regex et un modèle de remplacement qui ont tous deux été testés dans Notepad ++ sur mes données d'entrée et fonctionnent correctement. Quand je les mets dans une expression sed, cependant, rien ne correspond.Echapper aux chaînes sed correctement
Voici la commande sed:
# SEARCH = ([a-zA-Z0-9.]+) [0-9] (.*)
# REPLACE = \2 (\1)
sed -e 's/\([a-zA-Z0-9.]+\) [0-9] \(.*\)/\2 \(\1\)/g'
Voici un échantillonnage des données:
jdoe 1 Doe, John
jad 1 Doe, Jane
smith 2 Smith, Jon
et la sortie désirée:
Doe, John (jdoe)
Doe, Jane (jad)
Smith, Jon (smith)
j'ai essayé de supprimer et à ajouter échappe à différents caractères dans l'expression sed, mais soit n'obtenir rien de semblable ou quelque chose du genre:
sed: -e expression #1, char 42: invalid reference \2 on `s' command's RHS
Comment puis-je obtenir cette fuite correctement?
Cela a fonctionné à merveille. Merci. –