GNU/Linux >> Znalost Linux >  >> Linux

Jak mohu přidat řetězec na začátek každého souboru ve složce v bash?

A můžete to udělat pomocí sed in 1 jediný příkaz také

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

To udělá. Mohli byste to zefektivnit, pokud byste pro každý soubor udělali stejný text...

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

Můžete to udělat takto bez smyčky a cat

sed -i '1i whatever' *

pokud chcete zálohovat soubory, použijte -i.bak

Nebo pomocí awk

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

Linux
  1. Jak nahradit řetězec v souboru (souborech)?

  2. Jak mohu změnit název mnoha souborů ve složce?

  3. Jak najdu všechny odlišné přípony souborů v hierarchii složek?

  1. Jak v Bash přidám řetězec za každý řádek v souboru?

  2. Jak mohu vytvořit soubor v každé složce?

  3. Jak vypsat velikost každého souboru a adresáře a seřadit podle sestupné velikosti v Bash?

  1. Bash:přidejte řetězec na konec souboru bez zalomení řádku

  2. Jak mohu přidat řetězec na začátek každého řádku v souboru?

  3. Jak získám absolutní adresář souboru v bash?