Tengo un directorio lleno de archivos de texto. Mi objetivo es agregar texto al principio y al final de todos ellos. El texto que va al principio y al final es el mismo para cada archivo.
Basado en el código que obtuve de la web, este es el código para agregar al comienzo del archivo:
echo -e 'var language = {\n$(cat $BASEDIR/Translations/Javascript/*.txt)' > $BASEDIR/Translations/Javascript/*.txt
Este es el código para agregar al final del archivo. El objetivo es agregar el texto };al final de cada archivo:
echo "};" >> $BASEDIR/Translations/Javascript/*.txt
Los ejemplos que extraje fueron para actuar en archivos individuales. Pensé que iba a tratar actuando en varios archivos usando el comodín, *.txt.
Podría estar cometiendo otros errores también. En cualquier caso, ¿cómo agrego texto al principio y al final de varios archivos?
fuente

-ilugar de esta sustitución de archivos no funciona, solo se imprime en stdout.Intenta usar
ex:donde los comandos son:
bufdo!ejecuta los siguientes comandos para cada búfer / archivo abierto (nota: no es POSIX )1s/^/HEAD/- insertaHEADtexto en la primera línea al comienzo de la línea$s/$/TAIL/- agregaTAILtexto en la última línea al final de la líneay los argumentos son:
-s- modo silencioso / rápido-cxa- guardar todos los búferes / archivos abiertos y salir*.foo- todos los archivos en el directorio actual (*) confoola extensión, el uso**/*.foode la recursividad (después de permitir Globstar:shopt -s globstar)fuente
Con
gnu awk, usando lainplaceextensión yBEGINFILE/ENDFILE:fuente
También tiene derecho a ser (con resultados en
.outarchivos):Otra variante más elaborada: los archivos fuente se reemplazan por el resultado:
fuente
Perl one-liner al rescate:
fuente