Jaký je ' nejlepší způsob úpravy souboru pomocí bash skriptu?

Pomocí / bin / bash na RHEL 5.8 a chci automatizovat úpravy souboru. Potřebuji skript k prohledání souboru a nahrazení řádku v souboru. Příklad řádku:

Other line Current date 01121990 Other line 

Vyhledejte tento řádek a nahraďte řetězec data předem určeným datem. Nemohu „ozvěnu na nový soubor a zadat své datum, protože tento soubor bude zkopírován ze souboru specifického pro server. Díky!

Komentáře

  • sed by zde byl nástroj volby …

odpověď

your_date="your desired date" sed -i "s/^Current date.*/Current date ${your_date}/" /path/to/file 

To je nejjednodušší způsob. To předpokládá, že všechny řádky, které obsahují datum, které mají být nahrazeny, jsou jedinými řádky, které začínají na „Aktuální datum“.

Upozorňujeme, že uživatelská úroveň, která spouští tento příkaz, musí mít také oprávnění k úpravám tohoto souboru.

-i znamená přímou úpravu, což znamená, že soubor upravujete přímo.

^Current date.* 

Znamená všechny řádky začínající na: Aktuální datum a končí čímkoli. Jinými slovy, celý řádek nahraďte tím, co je ve druhé /…/ části věci sed.

Double „se používají kolem příkazu sed, takže proměnné budou použity jako proměnné, nikoli řetězce.

Komentáře

  • Díky Lizardx, že ' je přesně to, co potřebuji, otestovalo to a to funguje skvěle
  • velmi rád to slyším.

odpověď

ed může provádět úpravy souborů na místě také! Číslo inode upraveného souboru zůstává nezměněno.

file="/path/to/file" your_date="your desired date" ls -i "$file" printf "%s\n" H ",g/^Current date.*/s//${your_date}/" wq | ed -s "$file" ls -i "$file" 

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *