¿Cómo reemplazar el texto de una coincidencia (pero no en cada partido)? -- mmand-line campo con bash campo con scripts campo con sed camp askubuntu Relacionados El problema

How to replace text from a match (but not every match)?


0
vote

problema

Español

Quiero reemplazar ABCDEFGHIJKLMNABCDEFGHIJKLMN0 En el grupo que tiene ABCDEFGHIJKLMNABCDEFGHIJKLMNABCDEFGHIJKLMN1 Ruta. Estoy usando SED para hacer esto, pero está reemplazando cada partido.

apache2.conf antes de ejecutar el script

  <Directory />     Options FollowSymLinks     AllowOverride None     Require all denied </Directory>  <Directory /usr/share>     AllowOverride None     Require all granted </Directory>  <Directory /var/www/>     Options Indexes FollowSymLinks     AllowOverride None     Require all granted </Directory>   

apache2.conf después de ejecutar el script

  <Directory />     Options FollowSymLinks     AllowOverride All     Require all denied </Directory>  <Directory /usr/share>     AllowOverride All     Require all granted </Directory>  <Directory /var/www/>     Options Indexes FollowSymLinks     AllowOverride All     Require all granted </Directory>   

script.sh

  #!/bin/bash  sed "s/AllowOverride None/AllowOverride All/g" apache2.conf   

My pregunta es: ¿Cómo puedo decirle a SED a reemplazar dónde está ABCDEFGHIJKLMNABCDEFGHIJKLMN5 ?

Original en ingles

I want to replace AllowOverride None from the group that has /var/www/ path. I'm using sed to do this but it's replacing every match.

apache2.conf before running the script

<Directory />     Options FollowSymLinks     AllowOverride None     Require all denied </Directory>  <Directory /usr/share>     AllowOverride None     Require all granted </Directory>  <Directory /var/www/>     Options Indexes FollowSymLinks     AllowOverride None     Require all granted </Directory> 

apache2.conf after running the script

<Directory />     Options FollowSymLinks     AllowOverride All     Require all denied </Directory>  <Directory /usr/share>     AllowOverride All     Require all granted </Directory>  <Directory /var/www/>     Options Indexes FollowSymLinks     AllowOverride All     Require all granted </Directory> 

script.sh

#!/bin/bash  sed "s/AllowOverride None/AllowOverride All/g" apache2.conf 

My question is: How can I tell sed to replace where it is /var/www/?

           

Lista de respuestas

1
 
vote
vote
La mejor respuesta
 

Puede combinar su patrón de sustituto con una coincidencia de rango.

  sed -i '/<Directory /var/www/>/,/</Directory>/{s/AllowOverride None/AllowOverride All/g}' file.txt   
 

You can combine your substitute pattern with a range match.

sed -i '/<Directory \/var\/www\/>/,/<\/Directory>/{s/AllowOverride None/AllowOverride All/g}' file.txt 
 
 
 
 

Relacionados problema

0  ¿Cómo usar el comando SED para buscar la cadena con "/" personaje en él y reemplazar con alguna otra cadena?  ( How to use of sed command to search string with character in it and replace ) 
He ejecutado el comando: ABCDEFGHIJKLMNABCDEFGHIJKLMN5 En la salida, este comando no reemplaza "http: //" con "www" ¿Por qué? ¿Y cómo cambiar delimita...

15  Regex con comando SED para analizar el texto JSON  ( Regex with sed command to parse json text ) 
Tengo este texto JSON: { "buildStatus" : { "status" : "ERROR", "conditions" : [{ "status" : "OK", "metr...

4  Retire las cotizaciones alrededor de los enteros en un archivo CSV  ( Remove quotes around integers in a csv file ) 
en un archivo CSV grande (& gt; 1 gb) Tengo algo como "34432", "name", "0", "very long description" pero en lugar de eso me gustaría tener 34432, "n...

7  ¿Cómo reemplazar las cadenas en el archivo sin regex?  ( How to replace strings in file without regex ) 
Necesito reemplazar algunas cadenas en archivos (desde la línea de comandos), pero no quiero usar sed -i porque mi cadena contiene muchos personajes diverti...

2  ¿Cómo eliminar programáticamente las nuevas líneas vacías de un archivo?  ( How to programatically remove empty new lines from a file ) 
Necesito eliminar las nuevas líneas vacías del archivo de texto en el terminal. archivo de ejemplo 123 123 123 123 123 123 He buscado en Google u...

1  Reemplace solo ciertos números usando SED [CERRADO]  ( Replace only certain numbers using sed ) 
cerrado . Esta pregunta necesita detalles o claridad . Actualmente no está aceptando respuestas. ...

4  Cómo encontrar texto y reemplazar esa línea si existe con terminal, de lo contrario, solo agrega la línea para terminar  ( How to find text and replace that line if exists with terminal otherwise just ap ) 
Quiero poner en sudo gedit /etc/sysctl.conf la línea vm.swappiness=10 que a veces cambia. De forma predeterminada, esta línea no existe, por lo que util...

1  El uso de SED para agregar caracteres al final de una línea agrega una nueva línea  ( Using sed to add characters at the end of a line adds a new line ) 
Estoy haciendo un script para convertir algunas listas de cubierta mágicas de un formato a otro. Necesito insertar el código de configuración para cada tarjet...

3  Eliminar todo antes de la primera ocurrencia de la palabra especificada  ( Remove everything before first occurence of specified word ) 
¿Cómo puedo eliminar todo antes de la primera ocurrencia de una palabra específica usando sed ? lo que he intentado hasta ahora: echo $(cat /etc/nginx/s...

1  SED / AWK - Retire todas las etiquetas, excepto solo dos etiquetas y textos lisos  ( Sed awk remove all tags except only two tags and plain texts ) 
Aquí hay una muestra para mi archivo de texto: <w:r><w:t> <w:r w:rsidR="00D171FD"> <w:t></w:t> </w:r><w:r> <w:t xml:space="preserve"> This is a sample text...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos