Insertar string antes de cada linea de un archivo
Roberto Bonvallet
rbonvall en alumnos.inf.utfsm.cl
Lun Abr 16 18:59:35 CLT 2007
Morenisco:
> P.D: debo aprender sed, debo aprender sed...
Ademas de comenzar a aprender a usar sed, awk y familia, existe la
alternativa de realizar operaciones directamente desde un editor de texto.
Tiene la ventaja que es interactivo, tienes feedback inmediato y la
posibilidad de deshacer si te equivocas. En el editor de mi preferencia,
vim, puedes hacer lo que necesitas de varios modos:
1. puedes agregar texto al principio de la linea presionando I y a
continuacion el texto. Para hacer eso en todas las lineas del archivo,
antecedes con % y utilizas el comando "normal":
:%normal Igzip
2. vas a la primera linea (gg), insertas el texto (Igzip ), presionas Esc
y luego repites el comando con . en las lineas que quieras.
3. vas a la primera linea (gg), comienzas a grabar una macro (qq),
insertas el texto (Igzip ), presionas Esc, bajas a la linea siguiente y
terminas la macro (q). Luego ejecutas la macro con @q. Para ejecutarla
999 veces, presionas 999 en q
4. puedes sustituir el principio de todas las lineas por el texto "gzip ":
:%s/^/gzip /
5. en el primer caracter, presionas Ctrl-V para iniciar una seleccion
rectangular. Seleccionas un rectangulo que abarque toda la primera
columna del archivo, presionas I para insertar texto a la izquierda de la
seleccion, escribes "Igzip " y presionas Esc.
Si te equivocas, presionas u para deshacer e intentas de nuevo. IMHO, la
edicion interactiva es mucho mas facil y eficiente que conjuros obscuros en
sed.
Saludos!
--
Roberto Bonvallet
Más información sobre la lista de distribución Linux