Sådant får man bl.a. när man tar musik från "Windowski".
När man har en massa sådana kataloger, kan man på något "enkelt sätt", d.v.s. med ett skript, ersätta mellanslag med ett uderstreck?
Kanske t.o.m. så att skriptet letar "neråt" och ersätter mellanslagen i filerna också?
/Håkan
Mellanslag i katalognamn
Moderatorer: Nille, nomicon, Minime
-
- Hedersmedlem
- Inlägg: 811
- Blev medlem: 15 okt 2003 06:31
- ORT: Lidingö
- Minime
- Labrat
- Inlägg: 690
- Blev medlem: 14 okt 2005 14:27
- ORT: Loos
Re: Mellanslag i katalognamn
Går nog att skriva i perl, dock kan jag inte perl personligen tyvärr...
Alternativt kan jag tänka mig att det går det att skriva ett shell skript.
Efter några minuters googlande hittade jag några alternativ.
Shell Scripts Exempel:
Saxat från "http://cognitiveatrophy.blogspot.com/20 ... paces.html"
Perl script exempel:
Saxat från "http://www.pigstye.net/2006/09/18/perl- ... -dir-names"
/Minime
Alternativt kan jag tänka mig att det går det att skriva ett shell skript.
Efter några minuters googlande hittade jag några alternativ.
Shell Scripts Exempel:
Kod: Markera allt
#! /usr/bin/bash
for file in *\ *;
do
mv "$file" "${file// /_}"
done
Perl script exempel:
Kod: Markera allt
#!/usr/bin/perl -w
# nospace /this/dir /that/dir /those/too
use File::Find;
use strict;
die "usage: nospace dir[s]\n" unless @ARGV;
my %ext;
find(\&remspaces, @ARGV);
sub remspaces {
return if ($_ eq '.');
return if ($_ eq '..');
(my $new = $_) =~ tr/a-zA-Z0-9_.-/_/c;
my $duplicate = ($new ne $_ and -e $new);
my $try = $new;
$ext{"$File::Find::dir/$try"}++ if $duplicate;
while (my $count = $ext{"$File::Find::dir/$new"}++) {
(my $with_num = $new) =~ s/(?=\.|$)/_$count/;
$new = $with_num, last if not -e $with_num;
}
$ext{"$File::Find::dir/$try"}-- if $duplicate;
rename $_ => $new
or warn "can't rename $_ to $new: $!";
}
/Minime
Raspberry Pi 4B 4 Gb RAM Slackware Arm 15.0
Server EeeBox Atom 1.6 GHz 1.5 Gb RAM Slackware 15.0 x64bit
Asus Rog Strix AMD Ryzen 5 3.6 GHz 16 Gb RAM Slackware 15.0 multilib
Miraclebox Premium Twin HD - Openvix 5.2.040 (Neotion CI+ CA-modul)
- Nille
- Guru
- Inlägg: 1475
- Blev medlem: 17 jun 2004 02:41
Re: Mellanslag i katalognamn
Borde gå att göra ett enkelt bash skript för det, funderar på tr eller awk.
Nu är jag lite för trött för att tänka rätt men om det regnar imorgon så ska jag nog kunna fixa ett skript.
Nu är jag lite för trött för att tänka rätt men om det regnar imorgon så ska jag nog kunna fixa ett skript.
The more linux you go the slacker you get.
-
- Hedersmedlem
- Inlägg: 811
- Blev medlem: 15 okt 2003 06:31
- ORT: Lidingö
Re: Mellanslag i katalognamn
Tack!
Båda fungerar, det första är ju lite enklare och måste tas "katalog för katalog", men bra mycket snabbare än att använda ex.v. "krename" för att döpa om filer med om man bara ska ta bort mellanslag.
Perl-skriptet måste man modifiera så det inte tar bort å,ä,ö också, ändra rad 15 till...
(my $new = $_) =~ tr/a-öA-Ö0-9_.-/_/c;
..så fungerar det. Jag måste dock anropa det 2 ggr, första gången tar det "katalognamnen" och nästa gång även filerna....jag kallar skriptet "nospace.sh"...
..katalogerna har ju bytt namn så dom hittas inte...så en gång till...
..så tas innehållet också.
Än en gång, tack för hjälpen!
/Håkan
Båda fungerar, det första är ju lite enklare och måste tas "katalog för katalog", men bra mycket snabbare än att använda ex.v. "krename" för att döpa om filer med om man bara ska ta bort mellanslag.
Perl-skriptet måste man modifiera så det inte tar bort å,ä,ö också, ändra rad 15 till...
(my $new = $_) =~ tr/a-öA-Ö0-9_.-/_/c;
..så fungerar det. Jag måste dock anropa det 2 ggr, första gången tar det "katalognamnen" och nästa gång även filerna....jag kallar skriptet "nospace.sh"...
Kod: Markera allt
titus:/media/disk $ nospace.sh Barnskivor2/
Can't cd to (Barnskivor2/) 100% Barn Vol 4: No such file or directory
at /home/titus/bin/nospace.sh line 10
Can't cd to (Barnskivor2/) 100% Barn Vol 2: No such file or directory
at /home/titus/bin/nospace.sh line 10.
Kod: Markera allt
titus:/media/disk $ nospace.sh Barnskivor2/
Än en gång, tack för hjälpen!
/Håkan
- Nille
- Guru
- Inlägg: 1475
- Blev medlem: 17 jun 2004 02:41
Re: Mellanslag i katalognamn
Nu har jag inte testat men e lite piggare nu så kan tänka bättre
Borde det inte fungera med
rename "s/ /_/g" *
Men jag har inte testat det själv men tänkte att det måste vara lättast.
Glad midsommar allihop.
Borde det inte fungera med
rename "s/ /_/g" *
Men jag har inte testat det själv men tänkte att det måste vara lättast.
Glad midsommar allihop.
The more linux you go the slacker you get.