Jag råkade idag ut för att behöva jämföra filer i två stora katalogträd. Upprinnelsen till det var att jag har migrerat filer från Dropbox till Google Drive, men av någon orsak så fortsatte jag att redigera filerna i Dropbox… Det gjorde att jag snabbt behövde jämföra träden fil för fil, och det hade nog tagit hela sommaren om jag inte kunde utnyttja de behändiga verktygen diff
och grep
som finns i Unix-miljöer.
Säg att jag hade två katalogstrukturer enligt nedan:
Här har jag avsiktligt plockat bort en fil från en katalog och förändrat innehållet i en annan fil. Så här gjordes jämförelsen:
Vi får direkt ut skillnaden mellan filerna i träden.
Jag märkte att jag hade ett större antal filer som skilde sig åt, men där det ändå var OK då de redan låg rätt (där hade jag gjort redigeringen i Google, vilket var som det skulle – ändå så rapporterades naturligtvis en skillnad). Dessa filer hade ett namnmönster, och detta kunde man enkelt filtrera bort från sökningen med hjälp av grep -v <mönster>
där -v står för komplementet till namnmönstret. Det innebär att jag fick ut allt som var olika mellan katalogträden samtidigt som det inte matchade mönstret jag angett.
Tack till denna tråd på Stackoverflow.