Dnes jsem potřeboval změnit v několika různých textových souborech jeden řádek jejich hlavičky, které jsou všude stejné. Konkrétně se jednalo o ne příliš šikovně umístěné (nastavené) číslo, které bylo třeba snížit. No a přesně k tomu se mi hodil patch a jeho kamarád diff.
Vytvoření souboru se změnou (diff)
Nejdřív jsem si jeden z měněných souborů zkopíroval a v jeho nově vytvořené kopii provedl požadovanou změnu. Dál jsem zavolal diff:
diff stary_soubor.txt nova_verze > rozdil.diff
a vytvořil soubor se změnou.
Záplatování souborů (patch)
Dál už je možné rovnou záplatovat, záplatu jednoho souboru jsem vyzkoušel příkazem
patch -i rozdil.diff stary_soubor.txt
no a když bylo vše v pořádku (jak jinak), provedl to i se zbytkem
for i in *.txt ; do patch -i rozdil.diff $i; done;
Zdroje informací
http://www.abclinuxu.cz/clanky/navody/unixove-nastroje-8-diff-a-patch