Reemplazo con sed

Resuelto
CYG -  
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
Configuración: Windows 2003 Internet Explorer 6.0

4 réponses

jipicy Mensajes publicados 40842 Fecha de registro   Estado Modérateur Última intervención   4 898
 
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 :
$ 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.
3
CYG
 
Je veux remplacer "<c PROCESS\t\tM>" par "<c PROCESS\t\tM>" (la différence c'est le "c "), mais maintenant j'ai fait une mauvaise manipulation, une fausse manœuvre, j'ai cru que "<[\t]>" représente la tabulation et comme résultat dans mes fichiers j'ai ça "<c PROCESS[ ][ ]M>" et moi je ne veux pas que les accolades s'affichent, pouvez-vous m'aider s'il vous plaît.

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.
0
jipicy Mensajes publicados 40842 Fecha de registro   Estado Modérateur Última intervención   4 898
 
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).
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.
0
CYG
 
el archivo doris1.in "https://www.cjoint.com/?dds5I4dprx"
0
CYG
 
¿Dónde debo poner el nombre del archivo para tu pedido?
Gracias
CYG
0
jipicy Mensajes publicados 40842 Fecha de registro   Estado Modérateur Última intervención   4 898
 
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") :
sed -n 's/PROCESS\[\t\]\[\t\]M/PROCESS\t\tM/p' doris1.in
et 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é.
0
CYG
 
hola;

gracias, tu pedido es perfecto
;)
CYG
0
jipicy Mensajes publicados 40842 Fecha de registro   Estado Modérateur Última intervención   4 898
 
De nada ;-))

--

Z'@+...che.
JP: Zen, mis Nuggets! ;-) El conocimiento solo es valioso si se comparte.
0