GNU/Linux >> Linux Esercitazione >  >> Linux

Come posso aggiungere una stringa all'inizio di ogni file in una cartella in bash?

E puoi farlo usando sed in 1 singolo comando anche

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

Questo lo farà. Potresti renderlo più efficiente se esegui lo stesso testo su ogni file...

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

Puoi farlo in questo modo senza loop e cat

sed -i '1i whatever' *

se vuoi eseguire il backup dei tuoi file, usa -i.bak

O usando awk

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

Linux
  1. Come sostituire una stringa in un file?

  2. Come posso cambiare il nome di molti file in una cartella?

  3. Aggiungi una stringa di prefisso all'inizio di ogni riga

  4. In Bash, come aggiungo una stringa dopo ogni riga in un file?

  5. Come posso creare un file in ogni cartella?

Sostituzione di String in Bash

Come aggiungere testo all'inizio del file in Linux

Come aggiungere una nuova riga alla fine di un file?

Come posso trovare tutte le estensioni di file distinte in una gerarchia di cartelle?

Come posso aggiungere un piè di pagina in fondo a ogni pagina di un file postscript o pdf in Linux?

Come aggiungere una stringa di data a ogni riga di un file di registro scritto continuamente