Quiero reemplazar una cadena con un comodín pero no funciona.usando SED con el comodín
La cadena se ve como "un poco de cuerdas-8"
escribí
sed -i 's/string-*/string-0/g' file.txt
pero la salida es
some-string-08
Quiero reemplazar una cadena con un comodín pero no funciona.usando SED con el comodín
La cadena se ve como "un poco de cuerdas-8"
escribí
sed -i 's/string-*/string-0/g' file.txt
pero la salida es
some-string-08
El asterisco (*) significa "cero o más de el ítem anterior ".
Si desea hacer coincidir cualquier carácter individual utilizar
sed -i 's/string-./string-0/g' file.txt
Si desea hacer coincidir con cualquier cadena (es decir, cualquier carácter único cero o más veces) utiliza
sed -i 's/string-.*/string-0/g' file.txt
Por lo tanto, el concepto de un "comodín" en expresiones regulares funciona de forma un poco diferente. Para hacer coincidir "cualquier personaje", usaría "." El modificador "*" significa que coincide con cualquier número de veces.
Bueno, tal vez mi pregunta era incompleta ... tu comando funciona para este fien. Sin embargo, si tengo 'some-string-8 -x --command acommand', la salida de ejecutar ese comando es' some-string-0'. borrará todos los caracteres después de eso. Quiero 'some-string-0 -x --command acommand' – mahmood
ok, el primer comando es lo que quiero – mahmood
¿Qué ocurre si deseas usar el comodín en la cadena de reemplazo? ejemplo: reemplace 'AAA. * BBB' con 'CCC. * DDD' – user2561747