GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo puedo agregar una cadena al comienzo de cada archivo en una carpeta en bash?

Y puedes hacer esto usando sed en 1 solo comando también

for f in *; do
  sed -i.bak '1i\
  foo-bar
  ' ${f}
done

Esto hará eso. Podría hacerlo más eficiente si está haciendo el mismo texto en cada archivo...

for f in *; do 
  echo "whatever" > tmpfile
  cat $f >> tmpfile
  mv tmpfile $f
done

Puedes hacerlo así sin bucle y cat

sed -i '1i whatever' *

si desea hacer una copia de seguridad de sus archivos, use -i.bak

O usando awk

awk 'FNR==1{$0="whatever\n"$0;}{print $0>FILENAME}' *

Linux
  1. ¿Cómo reemplazar una cadena en un archivo (s)?

  2. ¿Cómo agregar una nueva línea al final de un archivo?

  3. Agregue una cadena de prefijo al comienzo de cada línea

  4. En Bash, ¿cómo agrego una cadena después de cada línea en un archivo?

  5. ¿Cómo puedo crear un archivo en cada carpeta?

Sustitución de cadena en Bash

Cómo agregar texto al comienzo del archivo en Linux

¿Cómo puedo encontrar todas las extensiones de archivo distintas en una jerarquía de carpetas?

¿Cómo puedo agregar un pie de página al final de cada página de un archivo postscript o pdf en Linux?

Cómo agregar una cadena de fecha a cada línea de un archivo de registro escrito continuamente

¿Cómo puedo obtener el último número de una cadena en bash?