Milyen módon ' szerkesztheti a fájlt egy bash szkript segítségével?

A / bin / bash használatával az RHEL 5.8-on és automatizálni akarom egy fájl szerkesztését. Szükségem van a szkriptre a fájl kereséséhez és a fájlban egy sor cseréjéhez. Sor példa:

Other line Current date 01121990 Other line 

Keresse meg ezt a sort, és cserélje ki a dátum karakterláncot egy előre meghatározott dátumra. Nem tudom “visszhangozni egy új fájlba, és beírni a dátumomat, mivel ez a fájl egy szerver-specifikus fájlból lesz másolva. Köszönet!

Megjegyzések

  • sed lenne itt a választott eszköz …

Válasz

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

Ez a legegyszerűbb módszer. Ez feltételezi, hogy minden olyan sor, amely tartalmazza a dátumot, szintén csak az “Aktuális dátum” -val kezdődik.

Ne feledje, hogy a parancsot futtató felhasználói szintnek szintén rendelkeznie kell engedéllyel a fájl szerkesztésére.

-i inline szerkesztést jelent, ami azt jelenti, hogy közvetlenül a fájlt szerkeszted.

^Current date.* 

Minden sor kezdőbetűje: Aktuális dátum és bármivel végződik. Más szavakkal, cserélje le az egész sort a sed dolog második /…/ részében lévőre.

A “Double” szót a sed utasítás körül használjuk, hogy a változókat változóként használják, nem pedig karakterláncok.

Megjegyzések

  • Köszönöm Lizardx-nek, hogy ' pontosan az, amire szükségem van, tesztelte és tesztelte remekül működik
  • nagy örömmel hallom.

Válasz

fájlok helyszíni szerkesztését is elvégezheti ! A szerkesztett fájl inode száma változatlan marad.

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" 

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük