Respuestas:
Un simple para hará el trabajo:
for i in ./*.txt; do echo 'cat' >> "$i"; done;
Esto obtendrá una lista de todos los archivos txt en el directorio actual, los recorre por todos echolados y los agrega (agrega al contenido). puede cambiar >>a >, para sobrescribir el contenido de los archivos con cat.
Otra cosa que puede hacer es usar teepara redirigir una secuencia a múltiples archivos.
Para anexar:
echo "cat" | tee -a *.txt
Para sobrescribir:
echo "cat" | tee *.txt
ambiguous redirect
Si los archivos no están vacíos, puede usarlos sedsin bucles. Para agregar catal inicio:
sed 'i\cat' *.txt
Para agregar al final:
sed 'a\cat' *.txt
Para agregar después de la segunda línea:
sed '2 a\cat' *.txt
Para agregar líneas anteriores con fooellas:
sed '/foo/ i\cat' *.txt
Sin embargo, no funciona en archivos vacíos. Una especie de error.
(Para realmente escribir en los archivos después de las pruebas que necesita la -iopción: sed -i 'a\cat' *.txt)
sedes mi mermelada;)
'i\cat'usa la barra diagonal inversa en lugar de la barra diagonal?
'icat'o i cat. La barra invertida es convencional, creo. No se puede usar la barra frontal, se insertará literalmente
Enfoque de Python:
#!/usr/bin/env python
import sys
for i in sys.argv[1:]:
with open(i,'w') as fd:
fd.write("cat\n")
sysmódulo para iterar sobre los argumentos de la línea de comandosEl uso sería como ./add_cat.py *.txt, que funcionaría en todos los .txtarchivos en el directorio de trabajo actual. La mejora de esto podría incluir el uso de la línea de comando argumento # 1 como cadena para escribir en lugar de codificar "cat" allí.
echo "cat" >> *.txt?