Povedzme, že máte adresár so stovkami súborov s nesprávnymi názvami súborov a chcete nahradiť každý názov súboru, ktorý obsahuje test s prod, (to je konštruovaný príklad). Môžeme to ľahko urobiť s príkazom "pre" v bash, v kombinácii s trochou bash dobroty. Dnes sa naučíme nahradiť text v premennej v smyčke.
Príkaz "pre" funguje takto:
for var in ;do $var;done
Môžete nahradiť
To je miesto, kde sa variabilná manipulácia bash stáva ešte zaujímavejším. Namiesto toho, aby sme robili niečo ako "mv $ var", môžeme nahradiť text v názve súboru pomocou tejto syntaxe:
${var/originaltext/replacetext}
Takže teraz, ak spustíme tento príkaz v našom adresári:
for f in *;do mv $f ${f/test/prod};done
Pre každý súbor zodpovedajúci *, bash vykoná podobný príkaz:
mv test.config prod.config
Zistil som, že znalosť shellu je neoceniteľná pri administrácii serverov alebo len pri spravovaní súboru a mne ušetril hodiny, čo by inak bolo manuálne.
A áno, uvedomujem si, že existuje niekoľko nástrojov, ktoré dokážu premenovať viac súborov.