Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Programma gezocht...  (gelezen 1700 keer)

Offline Ivan1986

  • Lid
Programma gezocht...
« Gepost op: 2008/06/07, 21:52:57 »
hej,

ik heb een aantal files (3000 ofzo) die ik wil sorteren in een 1000 mappen ofzo.....
de files zijn zo opgebouwd:

naam - onbelankrijk.jpg (extensie is verschillend)
Naam2 - onbelangrijk.jpg
NAAM - onbelangrijk.jpg
naam195 - onelangrijk.jpg

ik zou deze willen sorteren in mappen. zodat alle files in hun map te komen staan waarmee het eerste deel begint.
dus zo:

De map naam:
naam - onbelankrijk.jpg
NAAM - onbelangrijk.jpg

De map Naam2:
Naam2 - onbelangrijk.jpg

De map naam195:
naam195 - onelangrijk.jpg

Kent iemand hier ene programma voor?

alvast bedankt
Ivan

ps: ik hoop dat jullie snappen wat ik bedoel anders vraag je het maar.

Offline jan11000

  • Lid
Programma gezocht...
« Reactie #1 Gepost op: 2008/06/08, 04:15:39 »
Je zou eens alle "verkenners" kunnen installeren, misschien zit daar iets bij.
Maar het beste lijkt me in textmode, dus de copy of move command, cp of mv, deze zul je dus moeten leren.

Verkenners: bsc,gnome commander, krusader,thunar file manager, emelFM2,Endeavour2,mc midnight commander, etc

deKeijzer

  • Gast
Programma gezocht...
« Reactie #2 Gepost op: 2008/06/08, 04:19:16 »
mv naam*.* ~/naam
mv Naam2*.* ~/Naam2
mv NAAM*.* ~/NAAM
mv naam195*.* ~/naam195

zoiets?

Programma gezocht...
« Reactie #3 Gepost op: 2008/06/08, 08:17:51 »
Ik denk dat hij toch nog iets meer geautomatiseerd zoekt, want die commando's van hierboven, daarvan moet hij er nog een 1000 invoeren.  En eerst die 1000 mappen creëren.
Zal dus iets met een scriptje moeten worden, maar daar ken ik de syntax niet van.
Het organigram is iets van
Detecteer begin van een filenaam, bvb "naam2"
Creëer een directory met die naam "naam2"
mv naam2*.* ~/naam2 (waarbij "naam2" dan de waarde van een veranderlijke zou zijn...)
Herbegin

Enfin, zo snap ik, maar ik kan er naastzitten.
Blijft ook de vraag waar hij al die mappen wil wegzetten...
Omwille van de besparingen hebben ze het licht aan het eind van de tunnel ook uitgedaan...

marialice

  • Gast
Programma gezocht...
« Reactie #4 Gepost op: 2008/06/08, 22:04:17 »
Om je op weg te helpen:
(opslaan in een bestandje, uitvoeren met perl ; of uitvoerbaar maken met chmod +x)

#!/bin/perl
use strict;
use warnings;

my @files = `ls -F`;

for my $filename (@files) {
    $filename =~ s/(.*)\n/$1/;
    if ($filename =~ /([^-]*) - .*[^\/]$/) {
my $targetdir = lc $1;
print "$filename naar directory $targetdir\n";
# `mkdir -p $targetdir`;
# `mv '$filename' $targetdir`;
    }
}
Ik ben er hier van uit gegaan dat alle bestanden die verplaatst moeten worden " - " bevatten, en dat alles daarvoor de naam van de map moet worden. Graag eerst uitproberen of dit klopt en de bestanden naar de plekken worden gezet waar je ze wilt hebben. In het script hierboven is het verplaatsen nog uitgezet, je kunt dit veilig proberen.

Als dit werkt, de #'s voor  `mkdir -p $targetdir`;  en `mv '$filename' $targetdir` weghalen. Zo niet: laat even weten wat je anders wilt hebben.

Offline Ivan1986

  • Lid
Programma gezocht...
« Reactie #5 Gepost op: 2008/06/14, 22:19:21 »
hej,

sorry voor het laat antwoord had deze week geen tijd voor het toe te passen,

ik heb slecht nieuws, je mappen worden niet juist aangemaakt. Hij neemt de spatie ook als teken en maakt dan een hele mappen structuur waar meerdere mappen onderelkaar worden gezet.....  dus de file:

XXX YYY - Maakt niet uit.xx

hiervoor wordt deze map gemaakt:

locatie/yYY/xxx

gebruik ik hem met de de # dan print hij de juiste mappen wel uit.

snap je wat ik bedoel?

kan je het aanpassen want dit is echt handig en bespaart me uren ook in de toekomst!!!!

alvast bedankt voor hier tijd in te steken

groetjes Ivan

marialice

  • Gast
Programma gezocht...
« Reactie #6 Gepost op: 2008/06/15, 13:37:21 »
Bedankt voor je feedback! Ik had inderdaad geen rekening gehouden met spaties.

#!/bin/perl
use strict;
use warnings;

my @files = `ls -F`;

for my $filename (@files) {
    $filename =~ s/(.*)\n/$1/;
    if ($filename =~ /([^-]*) - .*[^\/]$/) {
    my $targetdir = lc $1;
    print "$filename naar directory $targetdir\n";
    `mkdir -p '$targetdir'`;
    `mv '$filename' '$targetdir'`;
    }
}
(Verschil: aanhalingstekens om 'targetdir' in de laatste twee regels).

Offline Ivan1986

  • Lid
Programma gezocht...
« Reactie #7 Gepost op: 2008/06/15, 14:11:16 »
hej,

het werkt nog niet helemaal, ondertussen snap ik al wel ene beetje jou code... de mappen doet hij goed, enkel alles is met kleine letters, en mss mag hij gewoon alles in een keer juist met hoofdletters zetten en ja dan heb ik maar mappen met dezelfde naam enkel een hoofdletter verschil dat valt wel mee van werk.
Het engie wat hij net doet is ene move commando (mv) dan zegt hij dat het bestand of de map niet bestaat.
kan dit te maken hebben dat hij wil verplaatsen naar de map Xyz en enkel de map xyz heeft.
is maar ene idee

nogmaals bedankt, ik ben niet ver vand de oplossing meer :d

marialice

  • Gast
Programma gezocht...
« Reactie #8 Gepost op: 2008/06/15, 15:53:36 »
We komen er wel ... :)

Mapnamen: je wilt dus hoofd- en kleine letters houden zoals ze in de bestandsnaam originele bestandsnaam stonden?
Heb je een concreet voorbeeld van wat er fout gaat? (Bij wat voor bestandsnaam?)

Kun je me anders aan een lijstje bestandsnamen helpen? Dan kan ik wat beter zien wat er gebeurt.

Offline Ivan1986

  • Lid
Programma gezocht...
« Reactie #9 Gepost op: 2008/08/05, 20:35:37 »
kan hier iemand nog verder mee helpen.... heeft een tijd geduurd maar eigenlijk wil ik dit nog steeds :s....

dit zijn vb files....
naam iets - naam 2.exe
graanm - pipodekloon.exe
pl - snip.exe

Programma gezocht...
« Reactie #10 Gepost op: 2008/08/05, 21:58:18 »
Hmm,
Je reageert wel heel laat? :-)

Misschien eerst maar eens de vraag van Marialice beantwoorden en met een lijstje komen met werkelijke namen. Want anders is het moeilijk te zien wat er fout gaat.