He estado aprendiendo a programar con un libro introductorio realmente genial para C y escribo cada ejemplo y cada tarea para poder aprender la sintaxis de memoria. Hice todos los archivos manualmente hasta ahora, pero hacer clic, nombrar y guardar se vuelve agotador.
Necesito una manera de crear varios archivos como bspl0001.c, bspl0002.c, bspl0003.c, etc, y guardarlos en el directorio "learning_c" o algo así.
Soy un novato con Ubuntu / Linux y honestamente solo lo ejecuto a través de VirtualBox porque el IDE Geany fue fácil de configurar. Por lo tanto, no sé realmente cómo funciona la Terminal.
editar Me acabo de encontrar en esta antigua cuenta mía y estoy sacudiendo la cabeza sobre por qué querría aprender una sintaxis de código de memoria. Curiosamente, casi termino con mis estudios de CS / Math BSc. Muchas gracias por la ayuda en retrospectiva!
fuente

Respuestas:
Puede hacer esto con estos comandos:
Explicación:
mkdir learning_clearning_cen la carpeta actual~cdcomando (es decircd Desktop)cd learning_ctouch bspl{0001..0003}.ctouches una herramienta para crear archivos vacíos y modificar marcas de tiempo; Estamos creando archivos vacíos.touch myfilecreará un archivo vacío llamadomyfile.El código feo que sigue (
bspl{0001..0003}.c) se llama expansión de llaves . Esta es una gran característica delbashshell que le permite crear largas listas de combinaciones de cadenas arbitrarias. Puede obtener más información sobre esto en Bash Hackers Wiki . En este caso, hará una larga lista de parámetros a los que se pasarátouch. También puede usar su equivalente largo:Puede cambiar la cantidad de archivos: si desea 12 archivos, puede ejecutarlos
bspl{0001..0012}.c.0012lugar de12) se aseguran de que la salida utilice 4 dígitos rellenados con ceros.fuente
touch bspl000{1..3}.ctouch {test,tes2,tes3}.jstouch tes{t,2,3}.jsCree un archivo numerado correctamente (siguiente) con una combinación de teclas de acceso directo
¿Por qué crear todos los archivos a la vez? La desventaja es que tendrá muchos archivos vacíos y sin usar. Lo que realmente estoy usando: presione una combinación de teclas para:
Todo en una pulsación de tecla. De esa forma, evita muchos archivos (aún) no utilizados; Los archivos solo se crean si los necesita.
Una versión simplificada a continuación (no ejecuta el paso 3). En cada pulsación de tecla, creará un archivo numerado correctamente como:
Cómo utilizar
Ejecute el script desde un acceso directo: Configuración del sistema> Teclado> Accesos directos personalizados. Agrega el comando:
fuente
Puede usar el siguiente código de Python, puede modificarlo para adaptarlo a sus necesidades.
Guarde el siguiente código con nombre de archivo
filecreator.pyY luego ejecútelo con este comando:
fuente
El
bashcamino es bueno, pero ¿qué pasa si está trabajando con un shell que no admite la expansión de llaves?touch file{1..10}no funciona para mí,mkshpor ejemplo. Aquí hay tres formas alternativas que funcionan independientemente del shell.seq
Un enfoque más neutral para la shell sería combinar el
seqcomando para generar una secuencia de números formateados conprintfopciones y pasarlo alxargscomando. Por ejemplo,Perl
Por supuesto, Perl, al ser una herramienta bastante amplia * nix, también puede hacerlo. El comando específico de una línea que tenemos aquí es el siguiente:
Efectivamente, lo que sucede aquí es que especificamos 3 argumentos de línea de comandos: prefijo de nombre de archivo, índice inicial e índice final. Luego, usamos
do { } for $ARGV[1] .. $ARGV[2]para iterar para un rango específico de números. Digamos que$ARGV[1]tenía 5 y$ARGV[2]9, iteraríamos sobre 5,6,7,8 y 9.¿Qué sucede en cada iteración dentro de las llaves? tomamos cada número especificado con
$_, y usando lasprintf()función creamos una cadena m que divide el prefijo (primer argumento de la línea de comando$ARGV[0]) y el número dado, pero completa el número con 4 ceros (que se hace porprintfestilo de formato,%04dparte), y adjunte el.csufijo. Como resultado de cada iteración creamos un nombre comobspl0001.c.El
open(my $fh, ">", $var);close($fh)efectivamente actúa comotouchcomando, creando un archivo con un nombre especificado.Aunque es un poco largo, funciona bastante bien, de manera similar al script de python de Jacob Vlijm. También se puede convertir a un script para facilitar la lectura si lo desea, de esta manera:
Vamos a probar esto. Primero el one-liner:
Y ahora el guión:
awk
Otro enfoque sería
awk, ejecutando un bucle for, redirigiendo a un archivo específico. El enfoque es similar al perl one-liner con argumentos de línea de comandos. Si bienawkes principalmente una utilidad de procesamiento de texto, aún puede hacer una programación genial del sistema.fuente