¿Cuál es la mejor manera de agregar algunos caracteres al inicio y al final de cada línea? ¿Se puede hacer usando Vim, o de alguna otra manera?Agregar caracteres al inicio y al final de cada línea en un archivo
Respuesta
En vim, puede hacerlo
:%s/^\(.*\)$/"\1"/
s/regex/replace/
es comando vim para la búsqueda n reemplazar.%
hace que se aplica en todo el archivo^
y$
denota inicio y final de la línea, respectivamente.(.*)
captura todo en el medio.(
y)
necesita ser escapado en vim regexes.\1
pone el contenido capturado entre dos citas.
mejor util sería sed (especialmente si necesita guión que)
cat foo.txt | sed s/^\(.*\)$/"\1"/g
más simple:
%s/.*/"&"
Explicación: Por defecto, un patrón se interpreta como el mayor posible coincidencia, por lo que .*
se interpreta como toda la línea, sin necesidad de ^
y $
. Y si bien \(
... \)
puede ser útil para seleccionar una parte de un patrón, no es necesario para todo el patrón, que se representa por &
en la sustitución . Y el final /
en una búsqueda o sustitución no es necesario a menos que algo más siga; aunque dejarlo fuera podría considerarse pereza. (Si es así, soy flojo.)
Me gusta más que la marca real anwer, porque es simple y yo también soy perezoso :), ¿qué le parece dejar un comentario después de 5 años? – ahsant
No es lo suficientemente flojo como para conocer los detalles de la expresión regular, muy agradecido de tomarse el tiempo para explicar este método . – shdobxr
Las dos respuestas que sugieren %s
son perfectas, y espero que aprendas a amar %s
y lo uses a menudo. Pero si desea rodear con frecuencia otros bloques de texto, se debe a usted mismo el surround.vim, que le permite hacer lo que usted solicitó con las siguientes cuatro teclas: yss"
y otras otras útiles objetivos envolventes integrados. Por ejemplo, para rodear la palabra actual con comillas dobles: csw"
, y para cambiar las comillas simples entre comillas dobles: cs'"
.
surround.vim es uno de mis plugins de vim favoritos, y lo uso a diario.
'yss" 'es en realidad cinco teclas, si cuenta el
- 1. Al añadir caracteres al final de cada línea en Emacs
- 2. Notepad ++ RegEx Search/Replace: ¿Cómo agregar y anteponer un carácter al inicio y al final de cada línea de archivo?
- 3. Archivo por lotes para agregar caracteres al principio y al final de cada línea en el archivo txt
- 4. ¿Cómo agregar texto al final de cada línea en Vim?
- 5. Agregue una coma al final de cada línea usando php
- 6. Signo de dólar al final de cada línea
- 7. Mover al inicio y al final de la búsqueda
- 8. ¿Cómo agregar un carácter al final de cada línea con awk?
- 9. Agregar una nueva línea al final de un JtextArea
- 10. cómo puedo agregar Agregar texto al comienzo de cada línea?
- 11. Escribiendo al final del archivo
- 12. Cortar al principio/al final de la línea, pegar al final/principio de la línea
- 13. TextMate clic al final de la línea
- 14. Cómo agregar una cadena al comienzo de cada línea en un archivo
- 15. Visual Studio - línea en blanco al final de cada archivo nuevo
- 16. cómo derivar fecha y hora actuales y añadir al final de cada línea que contiene 'Hola'
- 17. Agregar un carácter al principio y al final de una cadena
- 18. Anexando al final de línea en eclipse
- 19. Agregando caracteres al principio y al final de InputStream en Java
- 20. Dile al final de un bucle .Cada en rubí
- 21. Escribiendo al final de un archivo a través de opencsv
- 22. jQuery selector para la coincidencia al inicio Y al final de la ID?
- 23. mod_rewrite: agregar una barra al final?
- 24. Adjuntar al final de un archivo con NSMutableString
- 25. Adición de texto al principio y al final del archivo en C#
- 26. hormiga: ejecutar un objetivo al final de cada compilación
- 27. concatenar una cadena al final de cada línea de salida en bash/CSH
- 28. Agregar imagen al archivo .spec en Pyinstaller
- 29. Eliminar un punto y un número al final de una cadena de caracteres
- 30. Alinear DIV al final o línea base
Gracias ... eso funcionó como una brisa! y gracias de nuevo por la muy buena explicación. – Myth
@Myth Agregue una 'c' al final para que aparezca en cada línea: puede presionar y/n para reemplazar u omitir la línea':% s/^ \ (. * \) $/"\ 1"/c' – Amarghosh
Eso es muy útil ... ¿me puede indicar algunos recursos buenos para aprender regx? Perdón por la diversión del tema principal. – Myth