Reemplazo con sed
Resuelto
CYG
-
jipicy Mensajes publicados 40842 Fecha de registro Estado Modérateur Última intervención -
jipicy Mensajes publicados 40842 Fecha de registro Estado Modérateur Última intervención -
Hola,
necesito ejecutar un comando shell que contiene una tabulación, y no sé cómo hacerlo con cygwin, el comando es el siguiente:
"find sed -i 's/PROCESS M/c PROCESS M/' {} \;"
sabiendo que entre PROCESS y M hay 2 tabulaciones
alguien puede ayudarme
gracias de antemano
CYG
necesito ejecutar un comando shell que contiene una tabulación, y no sé cómo hacerlo con cygwin, el comando es el siguiente:
"find sed -i 's/PROCESS M/c PROCESS M/' {} \;"
sabiendo que entre PROCESS y M hay 2 tabulaciones
alguien puede ayudarme
gracias de antemano
CYG
Configuración: Windows 2003 Internet Explorer 6.0
4 réponses
Hola,
Tu pedido ya no tiene sentido ;-\
¿Y luego qué quieres hacer con "sed"? (en tu ejemplo quieres reemplazar "Process M" por "Process M")
¿Las 2 tabulaciones están en la parte izquierda o derecha de "sed"?
PD. Usa las etiquetas "< code >" y "</ code >" (sin espacios después de los signos de menor y antes de los signos de mayor) para formatear el texto en el foro :
--
Z'@+...che.
Tu pedido ya no tiene sentido ;-\
¿Y luego qué quieres hacer con "sed"? (en tu ejemplo quieres reemplazar "Process M" por "Process M")
¿Las 2 tabulaciones están en la parte izquierda o derecha de "sed"?
PD. Usa las etiquetas "< code >" y "</ code >" (sin espacios después de los signos de menor y antes de los signos de mayor) para formatear el texto en el foro :
$ echo -e "A\t\tB" A B $ echo -e "A\tB" A B;-))
--
Z'@+...che.
JP : Zen, my Nuggets ! ;-) El conocimiento solo es valioso si se comparte.
Ya en regla general, ¡nunca se prueba con el switch "-i"!!! No pones nada y así al menos ves el resultado en pantalla, o pones "-i.BAK" y te crea un archivo de respaldo...
¿Puedes poner un archivo "doris1.in" en "cjoint", por favor, para que no cometamos más errores y estemos seguros de la sintaxis a utilizar (en caso de que haya caracteres que te hayan pasado desapercibidos).
--
Z'@+...che.
¿Puedes poner un archivo "doris1.in" en "cjoint", por favor, para que no cometamos más errores y estemos seguros de la sintaxis a utilizar (en caso de que haya caracteres que te hayan pasado desapercibidos).
echo -e "PROCESS[\t][\t]M" | sed 's/PROCESS\[\t\]\[\t\]M/c PROCESS\t\tM/' c PROCESS M;-))
--
Z'@+...che.
JP : Zen, mis Nuggets ! ;-) El conocimiento solo es útil si se comparte.
Voici la traduction demandée :
Voilà la première commande à appliquer pour retrouver tes tabulations sans les crochets (quites le "-n" et le "p" final si le résultat est bon et remplace-le par "-i" ou "-i.bak") :
--
Z'@+...che.
sed -n 's/PROCESS\[\t\]\[\t\]M/PROCESS\t\tM/p' doris1.inet la seconde pour prendre en compte la ligne oubliée (enfin si c'est vraiment un oubli, vu qu'il y a des espaces vides avant les 2 tabulations) au-dessus de 2 autres (idem pour celle-là pour les "-n" et "p"):
sed -n 's/PROCESS[ ]*\t\tM/ c &/p' doris1.in;-))
--
Z'@+...che.
JP : Zen, mes Nuggets ! ;-) Le savoir n'est bon que s'il est partagé.
La commande est "<find . -type f -name "doris1.in" -exec sed -i 's/PROCESS[\t][\t]M/c PROCESS[\t][\t]M/' {} \;>"
En plus de ça, elle a appliqué la modification sur tous mes fichiers doris1.in qui appartiennent à d'autres sous-répertoires ; je voulais juste tester la commande sur un fichier, mais elle s'est appliquée sur tous les fichiers.