Segregowanie i przenoszenie plików do folderów

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
mes mariusz
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 190
Rejestracja: 11 mar 2009, 16:49
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Segregowanie i przenoszenie plików do folderów

Post autor: mes mariusz » 11 maja 2017, 13:23

Witam.

Pojedynczy program / gra (na Amigę) składa się z kilku wirtualnych dyskietek .adf (plików .adf)

Obrazek

Usiłuję dla każdej gry / programu stworzyć folder, i wrzucić do niego wszystkie dyskietki składające się na grę / program.

Próbuję tak:

Kod: Zaznacz cały

#!/bin/bash

ls ./adf/ > ./001_ls_result.txt
cut -f1-2 -d"(" ./001_ls_result.txt > ./002_cut_after_bracket_result.txt
uniq ./002_cut_after_bracket_result.txt > ./003_list_of_unique_folders.txt
mkdir "./folders/"
while read a; do : ; mkdir "./folders/$a" ; done < ./003_list_of_unique_folders.txt
while read a; do : ; mv "./adf/$a*" "./folders/$a/" ; done < ./003_list_of_unique_folders.txt
Czyli:

1. listuję zawartość folderu ./adf do pliku ./001_ls_result.txt

Kod: Zaznacz cały

Xenomorph (1990)(Pandora)[cr Miracle].adf
Xenomorph (1990)(Pandora)[cr VF][a][no title screen].adf
Xenomorph (1990)(Pandora)[cr VF][no title screen].adf
Xenomorph (1990)(Pandora)(Disk 1 of 2)[cr FLT][a].adf
Xenomorph (1990)(Pandora)(Disk 1 of 2)[cr FLT].adf
Xenomorph (1990)(Pandora)(Disk 2 of 2)[cr FLT].adf
Xenon (1988)(Melbourne House)[a2].adf
Xenon (1988)(Melbourne House)[a3].adf
Xenon (1988)(Melbourne House)[a].adf
Xenon (1988)(Melbourne House).adf
Xenon (1988)(Melbourne House)[cr A-Ha][h British Bulldogs].adf
Xenon (1988)(Melbourne House)[cr BS1 - TKT].adf
Xenon (1988)(Melbourne House)[cr BS1 - TKT][t +1 BS1 - TKT].adf
Xenon (1988)(Melbourne House)[cr TNG].adf
Xenon 2 - Megablast (1989)(Image Works)[cr VF][a].adf
Xenon 2 - Megablast (1989)(Image Works)[cr VF].adf
Xenon 2 - Megablast (1989)(Image Works)(Disk 1 of 2)[cr Black Monks].adf
Xenon 2 - Megablast (1989)(Image Works)(Disk 1 of 2)[cr Black Monks][t +40 Black Monks].adf
Xenon 2 - Megablast (1989)(Image Works)(Disk 1 of 2)[cr BS1][h Deejay99][t +3 BS1].adf
Xenon 2 - Megablast (1989)(Image Works)(Disk 1 of 2)[cr BS1][t +3 BS1][a].adf
Xenon 2 - Megablast (1989)(Image Works)(Disk 1 of 2)[cr BS1][t +3 BS1].adf
Xenon 2 - Megablast (1989)(Image Works)(Disk 1 of 2)[cr PNA][a].adf
Xenon 2 - Megablast (1989)(Image Works)(Disk 1 of 2)[cr PNA].adf
Xenon 2 - Megablast (1989)(Image Works)(Disk 1 of 2)[cr QTX].adf
Xenon 2 - Megablast (1989)(Image Works)(Disk 2 of 2)[cr BS1][t +3 BS1][a].adf
Xenon 2 - Megablast (1989)(Image Works)(Disk 2 of 2)[cr BS1][t +3 BS1].adf
Xenon 2 - Megablast (demo-playable) (1989)(Image Works).adf
Xenon 2 - Megablast (demo-playable) (1989)(Image Works)[v Byte Bandit].adf
Xenophobe (1989)(MicroStyle)[cr Subway][t +2 Subway][a].adf
Xenophobe (1989)(MicroStyle)[cr Subway][t +2 Subway].adf
Xenophobe (1989)(MicroStyle)(Disk 1 of 2)[cr VF].adf
Xenophobe (1989)(MicroStyle)(Disk 1 of 2)[cr VF][t Slipstream].adf
Xenophobe (1989)(MicroStyle)(Disk 2 of 2)[cr VF].adf
Xenophobe (1989)(MicroStyle)(Disk 2 of 2)[cr VF][t Slipstream].adf
X-Fighter (demo-playable) (1995)(Thalion).adf
Xiphos (1990)(Electronic Zoo)(M3)(Disk 1 of 2)[cr QTX].adf
Xiphos (1990)(Electronic Zoo)(M3)(Disk 1 of 2)[cr QTX][h Spaikers].adf
Xiphos (1990)(Electronic Zoo)(M3)(Disk 2 of 2)[cr QTX].adf
Xiphos (1990)(Electronic Zoo)(M3)(Disk 2 of 2)[cr QTX][h Spaikers].adf
X-It (1995)(Psygnosis)(Disk 1 of 2)[a2].adf
X-It (1995)(Psygnosis)(Disk 1 of 2)[a].adf
X-It (1995)(Psygnosis)(Disk 1 of 2).adf
X-It (1995)(Psygnosis)(Disk 1 of 2)[t +16 ATX].adf
X-It (1995)(Psygnosis)(Disk 2 of 2)[a].adf
X-It (1995)(Psygnosis)(Disk 2 of 2).adf
Xmas Lemmings (demo-playable) (1991)(Psygnosis)[a2].adf
Xmas Lemmings (demo-playable) (1991)(Psygnosis)[a3].adf
2. Wycinam wszystko od drugiego nawiasu tworząc plik ./002_cut_after_bracket_result.txt

Kod: Zaznacz cały

Xenomorph (1990)
Xenomorph (1990)
Xenomorph (1990)
Xenomorph (1990)
Xenomorph (1990)
Xenomorph (1990)
Xenon (1988)
Xenon (1988)
Xenon (1988)
Xenon (1988)
Xenon (1988)
Xenon (1988)
Xenon (1988)
Xenon (1988)
Xenon 2 - Megablast (1989)
Xenon 2 - Megablast (1989)
Xenon 2 - Megablast (1989)
Xenon 2 - Megablast (1989)
Xenon 2 - Megablast (1989)
Xenon 2 - Megablast (1989)
Xenon 2 - Megablast (1989)
Xenon 2 - Megablast (1989)
Xenon 2 - Megablast (1989)
Xenon 2 - Megablast (1989)
Xenon 2 - Megablast (1989)
Xenon 2 - Megablast (1989)
Xenon 2 - Megablast (demo-playable)
Xenon 2 - Megablast (demo-playable)
Xenophobe (1989)
Xenophobe (1989)
Xenophobe (1989)
Xenophobe (1989)
Xenophobe (1989)
Xenophobe (1989)
X-Fighter (demo-playable)
Xiphos (1990)
Xiphos (1990)
Xiphos (1990)
Xiphos (1990)
X-It (1995)
X-It (1995)
X-It (1995)
X-It (1995)
X-It (1995)
X-It (1995)
Xmas Lemmings (demo-playable)
Xmas Lemmings (demo-playable)
3. Usuwam powtarzające się linie, tworząc plik ./003_list_of_unique_folders.txt

Kod: Zaznacz cały

Xenomorph (1990)
Xenon (1988)
Xenon 2 - Megablast (1989)
Xenon 2 - Megablast (demo-playable)
Xenophobe (1989)
X-Fighter (demo-playable)
Xiphos (1990)
X-It (1995)
Xmas Lemmings (demo-playable)
Xorron 2001 (1989)
X-Out (1990)
X-Out (demo-playable)
XP8 (1996)
Xploit (1992)
XR35 Fighter Mission (1988)
X-Swap (1997)
XTreme Racing Data Disks v2.0 (1996)
XTreme Racing Track Disk (1996)
XTreme Racing v1.0 (1995)
Xybots (1989)
4. Zakładam osobny folder
5. W nim zakładam puste foldery dla gier / programów

Foldery zostały założone.

Obrazek


Teraz wypadałoby skopiować pliki .adf do odpowiednich folderów, i z tym niestety mam największy problem :-(

Chciałbym to zrobić tak:

Kod: Zaznacz cały

while read a; do : ; mv "./adf/$a*" "./folders/$a/" ; done < ./003_list_of_unique_folders.txt
Ale, jak widać, nie da się:

Kod: Zaznacz cały

# while read a; do : ; mv "./adf/$a*" "./folders/$a/" ; done < ./003_list_of_unique_folders.txt
mv: nie można wykonać stat na „./adf/Xenomorph (1990)*”: Nie ma takiego pliku ani katalogu
mv: nie można wykonać stat na „./adf/Xenon (1988)*”: Nie ma takiego pliku ani katalogu
mv: nie można wykonać stat na „./adf/Xenon 2 - Megablast (1989)*”: Nie ma takiego pliku ani katalogu
mv: nie można wykonać stat na „./adf/Xenon 2 - Megablast (demo-playable)*”: Nie ma takiego pliku ani katalogu
mv: nie można wykonać stat na „./adf/Xenophobe (1989)*”: Nie ma takiego pliku ani katalogu
mv: nie można wykonać stat na „./adf/X-Fighter (demo-playable)*”: Nie ma takiego pliku ani katalogu
mv: nie można wykonać stat na „./adf/Xiphos (1990)*”: Nie ma takiego pliku ani katalogu
mv: nie można wykonać stat na „./adf/X-It (1995)*”: Nie ma takiego pliku ani katalogu
mv: nie można wykonać stat na „./adf/Xmas Lemmings (demo-playable)*”: Nie ma takiego pliku ani katalogu
mv: nie można wykonać stat na „./adf/Xorron 2001 (1989)*”: Nie ma takiego pliku ani katalogu
mv: nie można wykonać stat na „./adf/X-Out (1990)*”: Nie ma takiego pliku ani katalogu
mv: nie można wykonać stat na „./adf/X-Out (demo-playable)*”: Nie ma takiego pliku ani katalogu
mv: nie można wykonać stat na „./adf/XP8 (1996)*”: Nie ma takiego pliku ani katalogu
mv: nie można wykonać stat na „./adf/Xploit (1992)*”: Nie ma takiego pliku ani katalogu
mv: nie można wykonać stat na „./adf/XR35 Fighter Mission (1988)*”: Nie ma takiego pliku ani katalogu
mv: nie można wykonać stat na „./adf/X-Swap (1997)*”: Nie ma takiego pliku ani katalogu
mv: nie można wykonać stat na „./adf/XTreme Racing Data Disks v2.0 (1996)*”: Nie ma takiego pliku ani katalogu
mv: nie można wykonać stat na „./adf/XTreme Racing Track Disk (1996)*”: Nie ma takiego pliku ani katalogu
mv: nie można wykonać stat na „./adf/XTreme Racing v1.0 (1995)*”: Nie ma takiego pliku ani katalogu
mv: nie można wykonać stat na „./adf/Xybots (1989)*”: Nie ma takiego pliku ani katalogu
I kręcę się w kółko, nie wiedząc jak sobie poradzić.
mes mariusz
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 190
Rejestracja: 11 mar 2009, 16:49
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Re: Segregowanie i przenoszenie plików do folderów

Post autor: mes mariusz » 11 maja 2017, 16:28

ODPOWIEDZ

Wróć do „Programowanie”