(9 respuestas)
Cerrado hace 6 años.
Sé que esta pregunta probablemente ha sido respondida antes. He visto muchos hilos sobre esto en varios lugares, pero las respuestas suelen ser difíciles de extraer para mí. Estoy buscando ayuda con un ejemplo de uso del comando 'sed'.
Digamos que quería actuar sobre el archivo "hello.txt" (en el mismo directorio que el aviso). Dondequiera que contuviera la frase “pocos”, debería cambiarse a “asd”. ¿Cómo sería el comando?
Respuesta aceptada:
sed
es el s tren ed itor, en el que puedes usar |
(tubería) para enviar flujos estándar (STDIN y STDOUT específicamente) a través de sed
y alterarlos programáticamente sobre la marcha, convirtiéndolo en una herramienta útil en la tradición filosófica de Unix; pero también puede editar archivos directamente, usando -i
parámetro mencionado a continuación.
Considere lo siguiente :
sed -i -e 's/few/asd/g' hello.txt
s/
está acostumbrado a s sustituya la expresión encontrada few
con asd
:
Los pocos, los valientes.
El asd, el valiente.
/g
significa "global", lo que significa hacer esto para toda la línea. Si omite el /g
(con s/few/asd/
, siempre tiene que haber tres barras, pase lo que pase) y few
aparece dos veces en la misma línea, solo las primeras few
se cambia a asd
:
Los pocos hombres, las pocas mujeres, los valientes.
Los hombres asd, las pocas mujeres, los valientes.
Esto es útil en algunas circunstancias, como alterar caracteres especiales al comienzo de las líneas (por ejemplo, reemplazar los símbolos de mayor que algunas personas usan para citar material anterior en hilos de correo electrónico con una tabulación horizontal mientras dejan una desigualdad algebraica citada más adelante en la línea intacto), pero en su ejemplo donde especifica que en cualquier lugar few
ocurre, debe ser reemplazado, asegúrese de tener ese /g
.
Las siguientes dos opciones (banderas) se combinan en una, -ie
:
-i
la opción se usa para editar i n colocar en el archivo hello.txt
.
-e
opción indica la e xpression/comando a ejecutar, en este caso s/
.
Nota:Es importante que uses -i -e
para buscar/reemplazar. Si haces -ie
, crea una copia de seguridad de cada archivo con la letra 'e' añadida.