Estoy tratando de coincidir con el siguiente patrón que tiene espacios entre ellas.

         -DsomeArg=some value 

y reemplazarla con la siguiente patrón utilizando el comando sed.

         -DsomeArg="some value"

Puede haber cualquier número de espacios en el medio. Traté de abajo de comandos, pero no su trabajo.

          sed 's/^\(-D.*\)=(.\+\s\+.\+)/=""/' test.dat

donde como .* obras en lugar de .+ pero quiero coincidir con uno o más patrón. Yo no soy capaz de encontrar lo que estoy haciendo mal. Por favor, ayúdenme.

  • Cuál es el fin de su valor? Al final de la línea?
  • Lo que está mal con sed 's/\(-D.*=\)\(.*\)/\1"\2"/'?
InformationsquelleAutor Mojoy | 2013-01-15

2 Comentarios

  1. 0

    Este hace lo que usted solicitó:

    sed 's/=\(.*\)/=""/'

    o un poco más corto:

    sed 's/=/="/;s/$/"/'

    Pero tengo la sensación de que hay más a la historia que estás diciendo. Como, se espera que algunas de texto a seguir «algo de valor» que quiere dejar fuera de las comillas? Hace algo preceder -DsomeArg que no quieres partido?

    Con expresiones regulares, el contexto lo es todo.

Dejar respuesta

Please enter your comment!
Please enter your name here