Välkommen till linuxportalen.se!

Linuxportalen.se är Sveriges största och aktivaste webbplats för användare av öppen- och fri programvara.

Du besöker Linuxportalen.se som gäst vilket begränsar din möjlighet att använda webbplatsens alla funktioner. Genom att registera dig som medlem får du inte bara möjlighet att söka bland webbplatsens innehåll, skapa nya och delta i befintliga diskussioner, skapa din egen blogg, kommunicera med andra medlemmar genom privata meddelanden och delta i omröstningar. Du får också tillgång till Veckans Kadavro - en seriestrip unikt skapad för Linuxportalen.se!

Registeringen sker snabbt och är helt kostnadsfri - tveka inte, bli medlem idag!

scripta

Sitter och försöker minna lite av bash scriptning... tyvärr kommer jag inte ihåg hur variabler funkar jag vet hur jag sätter en variabel och jag vet någorlunda hur export funkar.

Dock, hur skall jag gå tillväga om jag vill göra ett litet script som tar alla filer i katalogen den körs i och sorterar in den efter bokstab.

exempel

./mnt/raid/
innehåller katalogerna a - ö
samt en massa filer.
det jag vill göra är att jag vill läsa ut första bokstaven ur filerna och sedan kopiera in filen i rätt underkatalog.
eller igentligen flytta.
Teoretiskt kan man ju göra en bash fil som innehåller en rad mv (bokstav)* för varje bokstav i alfabete. men det blir ju inte så snyggt Tongue

Vill använda ls

haha förvirrat inlägg! Jag är mästaren Smile

Alternativ för kommentarvisning

Välj ditt önskade sätt att visa kommentarerna och klicka på "Spara" för att verkställa dina ändringar.

fredentofts bild

En lösning som inte är den allra snyggaste, men nåt att börja med kanske, ser ut så här:
 

for i in a b c d e f g h i j k l m n o p q r s t u v w x y z å ä ö
do
  find . -maxdepth 1 -type f -name $i\* -exec mv {} $i \;
done

Byt -name mot -iname om den ska sortera a som A osv. Den bygger också på att alla bokstavskatalogerna finns redan.
 
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Argumentera aldrig med idioter.
De drar bara ner dig till sin nivå och vinner på erfarenhet!

-
För övrigt anser jag att trådindenteringen måste lagas
-
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

jonasbjorks bild

Kul att få en liten utmaning, här kommer mitt fulhack:

#!/bin/bash

for a in `ls -1bp | grep -v "\/$" | tr [A-Z] [a-z]`
do
	b=$(echo $a | cut -c1)
	echo "mkdir $b 2> /dev/null"
    echo "mv $a $b"
done

Ta bort echo och "-tecknen om du vill använda det.. Wink Jag ville inte köra kommandona i min /home Wink

--
Linux is not about class, color or races. What them talk about I dont really care. I don't give much about the things that I hear. I rise, I shine and I take my share. Moving with GNU and I have no fear.

--
Jag är grundare av och administratör på Linuxportalen. Kontakta mig om du har frågor, funderingar eller synpunkter kring Linuxportalen.se .

kimjohanssons bild

for i in `ls` eller något i den stilen kanske?


lokomotivs bild

Tack för alla svar Smile Lärorikt!