Sida 1 av 1
Sortera filer in i mappar
Postat: 26 mar 2015, 10:56
av Ainigma
Vilket är det bästa kommandot om man vill sortera filer in i mappar? Jag vill alltså inte bara använda titeln på filen för då kan jag ju använda 'mv' utan jag vill att terminalen kontrollerar vissa ord i filen(det är pdf-filer och textfiler) och med hjälp av det sorterar in i rätt mapp. Det bästa vore om jag kunde ha det booleskt så att sorteringen blir mera specifik. Kommandot 'sort' är väl bara för att sortera text i en textfil, inte att sortera filer in mappar vad jag förstår.

Re: Sortera filer in i mappar
Postat: 26 mar 2015, 12:12
av Osprey
Det där finns det nog inget färdigt kommando som klarar av, men däremot så är det rätt enkelt att "hacka ihop" ett script som fixar det...
Generellt så kan väl scriptet bli något som:
Kod: Markera allt
#! /bin/bash
#
for FILE in *; do
if [[ ! -d "$FILE" ]]; then
if [[ ! -z $(grep "sökbegrepp1" "$FILE") ]]; then
mv "$FILE" dir1
elif [[ ! -z $(grep "sökbegrepp2" "$FILE") ]]; then
mv "$FILE" dir2
elif [[ ! -z $(grep "sökbegrepp3" "$FILE") ]]; then
mv "$FILE" dir3
else
mv "$FILE" dir4
fi
fi
done
...och att lägga till lite mer villkor så att du kan åstadkomma vilka booleska funktioner du vill, är ju inte så svårt...

Re: Sortera filer in i mappar
Postat: 26 mar 2015, 12:22
av Ainigma
Ok tack

Nu är jag inte bra på detta så det är inte helt klart för mig vad skriptet säger, men jag gissar att det uttrycker en disjunktion, hur uttrycker man ett tillägg av en konjunktion av söktermerna i pdf:en ?
Re: Sortera filer in i mappar
Postat: 26 mar 2015, 12:34
av Osprey
Det är bara att utforma begreppet i if-satsen så att det motsvarar det du vill uppnå med konjunktionen.
Logiska operatorer i bash är t.ex:
Re: Sortera filer in i mappar
Postat: 26 mar 2015, 12:54
av Ainigma
Ok tack
