Podría alguien explicar este comando para mí:comando "sed" en bash
cat | sed -e 's,%,$,g' | sudo tee /etc/init.d/dropbox << EOF
echo "Hello World"
EOF
¿Qué hace el comando "sed"?
Podría alguien explicar este comando para mí:comando "sed" en bash
cat | sed -e 's,%,$,g' | sudo tee /etc/init.d/dropbox << EOF
echo "Hello World"
EOF
¿Qué hace el comando "sed"?
sed
es el Stream EDitor. Puede hacer un montón completo de really cool things, pero el más común es el reemplazo de texto.
La parte s,%,$,g
de la línea de comandos es el comando sed
para ejecutar. El s
representa el sustituto, los caracteres ,
son delimitadores (se pueden usar otros caracteres; /
, :
y @
son populares). El %
es el patrón para que coincida (aquí un signo de porcentaje literal) y el $
es el segundo patrón para hacer coincidir (aquí un signo de dólar literal). El g
al final significa g
reemplazar globalmente en cada línea (de lo contrario, solo actualizaría la primera coincidencia).
Por alguna razón, sed reemplaza todas las líneas por mí, no solo la primera cuando dejo afuera la 'g' al final. p.ej. 'sudo sed -i 's, enabled = 0, enabled = 1,'/etc/yum.repos.d/epel.repo' en una imagen AWS de Amazon con sed versión 4.2.1 – Programster
sed siempre se ejecutará en cada línea. La opción 'g' hace que reemplace cada coincidencia en esa línea en lugar de la primera coincidencia en esa línea. –
Se lee Hello World
(cat
), reemplaza todas las ocurrencias (g
) de %
por $
y (sobre) lo escribe en /etc/init.d/dropbox
como root.
Aquí sed
está reemplazando todas las ocurrencias de %
con $
en su entrada estándar.
Como ejemplo
$ echo 'foo%bar%' | sed -e 's,%,$,g'
producirá "foo bar $ $".
sed es un editor de flujo. Yo diría que el hombre intento sed.If no encontró esta página hombre en su sistema se refiere este URL:
+1 para la página de manual. –
sed es la abreviatura de "editor de flujo" - edita flujos de bytes/caracteres. –
Podrías haber preguntado eso como un comentario a mi respuesta, me hubiera gustado expandirlo. – Benoit