¿Cómo agrego la salida de un comando al final de un archivo de texto?
478
Use en >>
lugar de >
cuando dirige la salida a un archivo:
your_command >> file_to_append_to
Si file_to_append_to
no existe, se creará.
Ejemplo:
$ echo "hello" > file
$ echo "world" >> file
$ cat file
hello
world
echo
elimina las nuevas líneas de la cadena. ¿Cómo se agrega a un archivo una cadena que contiene nuevas líneas?Para
append
usar un archivo>>
entonces la salida debería ser
Para
overwrite
usar un archivo>
entonces la salida es
hello tom
fuente
Puede usar el operador >>. Esto agregará datos de un comando al final de un archivo de texto.
Para probar esto intente ejecutar:
Haga esto un par de veces y luego ejecute:
Verá que su texto se ha agregado varias veces al archivo textfile.txt.
fuente
Use
command >> file_to_append_to
para agregar a un archivo.Por ejemplo
echo "Hello" >> testFile.txt
PRECAUCIÓN: si solo usa
>
uno, sobrescribirá el contenido del archivo. Para asegurarse de que eso nunca suceda, puede agregarset -o noclobber
a su.bashrc
.Esto garantiza que si accidentalmente escribe
command > file_to_append_to
en un archivo existente, le alertará de que el archivo ya existe. Mensaje de error de muestra:file exists: testFile.txt
Por lo tanto, cuando lo use
>
solo le permitirá crear un nuevo archivo, no sobrescribir un archivo existente.fuente
Use el
>>
operador para agregar texto a un archivo.fuente
El uso de tee con la opción -a (--append) le permite agregar múltiples archivos a la vez y también usar sudo (muy útil al agregar archivos protegidos). Además de eso, es interesante si necesita usar otros shells además de bash, ya que no todos los shells admiten los operadores> y >>
Este hilo tiene buenas respuestas sobre tee
fuente
para toda la pregunta:
esto agregará 720 líneas (30 * 24) a o.txt y luego cambiará el nombre del archivo según la fecha actual.
Ejecute lo anterior con el cron cada hora, o
fuente
Usaría printf en lugar de echo porque es más confiable y procesa el formateo como una nueva línea
\n
correctamente.Este ejemplo produce una salida similar a echo en ejemplos anteriores:
Sin embargo, si reemplazara printf con echo en este ejemplo, echo trataría \ n como una cadena, ignorando así la intención
fuente
Te sugiero que hagas dos cosas:
>>
en su script de shell para agregar contenido a un archivo en particular. El nombre del archivo se puede corregir o usar algún patrón.fuente
Por ejemplo, su archivo contiene:
si desea agregar al final del archivo, entonces ----> recuerde los espacios entre 'texto' >> 'nombre de archivo'
Y para sobrescribir el contenido del archivo:
fuente
cat
es ... simplemente completamente loco. (Está vacío porque acaba de redirigir la salida estándar a un archivo.)