1#!/usr/bin/perl 2# This script takes an input of filenames and outputs a set of 3# include/exclude directives that can be used by rsync to copy 4# just the indicated files using an --exclude-from=FILE option. 5use strict; 6 7my %hash; 8 9while (<>) { 10 chomp; 11 s#^/+##; 12 my $path = '/'; 13 while (m#([^/]+/)/*#g) { 14 $path .= $1; 15 print "+ $path\n" unless $hash{$path}++; 16 } 17 if (m#([^/]+)$#) { 18 print "+ $path$1\n"; 19 } else { 20 delete $hash{$path}; 21 } 22} 23 24foreach (sort keys %hash) { 25 print "- $_*\n"; 26} 27print "- /*\n"; 28