2017-10-04 2 views
0

Je rencontre des difficultés pour formater certains fichiers. Je veux tout supprimer entre [& lnP jusqu'à [& R] dans le fichier1.trees, puis créer un nouveau fichier appelé fichier1_edit.trees. Mais je reçois l'erreur 'mauvais drapeau commande de substitution: '/''sed commande: bad flag in substitut commande: '/'

sed -i '' 's/[&lnP/,/[&R]/{//!d;}/g' file1.trees > file1_edit.trees 


    Error --->> sed: 1: "s/[&lnP/,/[&R]/{//!d;}/g": bad flag in substitute command: '/' 
+1

écartez les crochets, supprimez la rediection lorsque vous effectuez des mises à jour in situ. – SMA

+0

Pas sûr, mais peut-être que vous voulez dire 'sed' s/[& lnP \ /,/[& R]/{\ /! D;}/g'' – Arount

+0

Ce que vous essayez de réaliser n'est pas tout à fait clair edit] pour ajouter un (petit) échantillon et une sortie attendue? Comme il est, je ne peux pas dire si vous essayez de 's' (substitut) dans une ligne ou' d' (supprimer) une gamme de lignes. –

Répondre

0

En supposant que vous voulez remplacer "[& InP /,/[& R]" avec « {// d;!} », votre commande doit être:

sed 's/\[&lnP\/,\/\[&R\]/{\/\/!d;}/g' file1.trees > file1_edit.trees 

Vous auriez besoin d'échapper à des personnages qui se confondre avec la recherche/remplacer une partie par avoir slash. Échappez également des caractères qui seraient traités comme des caractères spéciaux dans regex (méta-caractères).

Supprime également l'option -i qui effectue les modifications dans le fichier.