la sustitución de sed coincide con demasiadas entradas

la sustitución de sed coincide con demasiadas entradas

Este es mi comando:

echo "Test" | sed -f <(sed -e 's/.*/s,&,gI/' mydic)  

El archivo mydiccontiene 2 columnas delimitadas por comas ( ,)

a,AlphabetA  
.  
.   
.    
e,AlphabetE   
.   
.   
s,AlphabetS  
.   
t,AlphabetT   
test,testedd   
.   
.   
zebra,zebraaaa

El resultado esperado es testedd, pero lo obtengo AlphabetTAlphabetEAlphabetSAlphabetT.

Respuesta1

echo Test |sed -f <(sed 's/\(.*\),\(.*\)/s,\\<\1\\>,\2,gI/' mydic)

\<y\>indican el inicio y el final de una palabra, respectivamente.

Respuesta2

Le pidió que reemplazara "e" con "AlphabetE", lo cual se hizo correctamente. Sospecho que lo que querías decir era considerar solo palabras completas.

Prueba esto:

echo "test" | sed -f <(sed -e 's/.*/s,\\<&\\>,gI/' mydic)

Editar: noté que, de hecho, habías abordado el tema del caso.

información relacionada