Necesito crear un archivo de texto (a menos que ya exista) y escribir una nueva línea en el archivo usando bash.Crear archivo de texto y rellenarlo usando bash
Estoy seguro de que es simple, pero ¿podría alguien explicarme esto?
Necesito crear un archivo de texto (a menos que ya exista) y escribir una nueva línea en el archivo usando bash.Crear archivo de texto y rellenarlo usando bash
Estoy seguro de que es simple, pero ¿podría alguien explicarme esto?
Si estás queriendo esto como una secuencia de comandos, el siguiente script Bash debe hacer lo que quiere (más que decir cuando el archivo ya existe):
#!/bin/bash
if [ -e $1 ]; then
echo "File $1 already exists!"
else
echo >> $1
fi
Si no desea que el "ya existe" mensaje, puede utilizar:
#!/bin/bash
if [ ! -e $1 ]; then
echo >> $1
fi
Editar acerca del uso de:
Guardar la versión que con un nombre que te gusta, digamos "CREATE_FILE" (comillas mío, que no quieren que en el nombre de archivo). Entonces, para hacer que el executatble fichero desde la línea de comandos hacer:
chmod u+x create_file
Put the file in a directory in your path, a continuación, utilizarlo con:
create_file NAME_OF_NEW_FILE
El $ 1 es una variable de entorno especial que lleva el primer argumento en el comando línea después del nombre del programa; es decir, $ 1 recogerá NAME_OF_NEW_FILE en el ejemplo de uso anterior.
Tu pregunta es un poco vaga. Este es un comando shell que hace lo que yo creo que quiere hacer:
echo >> name_of_file
Suponiendo que quiere decir comandos de Unix, basta con ejecutar
echo >> file.txt
echo
imprime una nueva línea, y el >>
dice que el shell añada esa nueva línea al archivo, creando si ya no existe.
Para responder correctamente la pregunta, sin embargo, necesitaría saber qué desea que suceda si el archivo ya existe. Si desea sustituir el contenido actual con la nueva línea, por ejemplo, se usaría
echo > file.txt
EDIT: y en respuesta al comentario de Justin, si desea agregar la nueva línea sólo si el archivo no lo hizo ya existen, puede hacerlo
test -e file.txt || echo > file.txt
Al menos eso trabaja en Bash, no estoy seguro si lo hace también en otros proyectiles.
+1. Creo que hay otra interpretación posible: crear y escribir una nueva línea si el archivo aún no existe; de lo contrario, no modifique el archivo en absoluto. –
@Justin: buen punto, creo que también puedo agregar eso y tendremos todas las opciones cubiertas. –
La creación de un archivo de texto en Unix se puede hacer a través de un editor de texto (vim, emacs, gedit, etc.). Pero lo que quiere podría ser algo como esto
echo "insert text here" > myfile.txt
que pondrá el texto 'insertar texto aquí' en un archivo miarchivo.txt. Para verificar que esto funcionó, use el comando 'cat'.
cat myfile.txt
Si desea anexar a un archivo de utilizar este
echo "append this text" >> myfile.txt
¿Qué es $ 1, aquí? – switz
¿Podría reemplazarlo por "text.txt"? – switz
@Switz: ver edición explicando $ 1. Si reemplaza $ 1 en el script con "text.txt", siempre usará "text.txt" como el nombre del archivo. – GreenMatt