Je souhaite extraire des lignes d'un fichier correspondant à un motif particulier et je souhaite le faire pour plus de 500 fichiers. Il devrait également pouvoir conserver le nom unique du fichier.Sélectionner les lignes en fonction du modèle de texte
J'ai utilisé awk mais ensuite je dois faire chaque fichier individuellement.
c:\>gawk "/S1901/" Census_Tract_*.csv > Census_Tract_*.csv
Dans l'exemple illustré dans le lien ici (http://bit.ly/nMX8qh) Je veux conserver que les enregistrements qui ont S1901 en eux. Toutes mes excuses pour le lien externe mais je ne suis pas capable de conserver le formatage de la table.
J'ai trouvé du code perl que j'ai utilisé pour l'écrire mais il conserve toutes les lignes et ne sélectionne pas seulement les lignes/enregistrements où le motif correspond. Tous les conseils seraient très appréciés. Le code perl est ci-dessous:
#perl -w
$pattern = "Subject_Census*.csv"; # process only those files that match pattern
while (defined ($in = glob($pattern))) {
($out = $in) =~ s/\.csv$/.outcsv/; # read from "xyz.in" and write to "xyz.out"
open (IN, "<", $in) or die "Can't open $in for reading: $!";
open (OUT,">>", $out) or die "Can't open $out for writing: $!";
while (<IN>) {
$mystring =~ /S1901/;
print OUT $_ if $mystring == 0;
}
close (IN) or die "Can't close $in: $!"; # good idea to do some housekeeping
close (OUT) or die "Can't close $out: $!";
}
Merci DavidO. Ce code fonctionne pour moi. Appréciez l'aide. – Krishnan
Vous êtes les bienvenus. Heureux que c'était sur la bonne voie. – DavidO