Sida 2 av 2

Re: Massnamnbyte på filer i given mapp med undermappar

Postat: 12 nov 2010, 22:37
av Konservburk
Johnny Rosenberg skrev:Man kan tydligen inte bara slänga in ”$Test” och ”$Replace” hur som helst i ett reguljärt uttryck, så hur gör man då istället?
Det har med enkelfnuttarna att göra. De gör så att variabelnamnet behålls istället för att ersättas med variabelns värde. Lösningen är att använda dubbelfnuttar istället, eller inga fnuttar alls beroende på situationen.

Re: Massnamnbyte på filer i given mapp med undermappar

Postat: 12 nov 2010, 22:49
av Johnny Rosenberg
Konservburk skrev:
Johnny Rosenberg skrev:Man kan tydligen inte bara slänga in ”$Test” och ”$Replace” hur som helst i ett reguljärt uttryck, så hur gör man då istället?
Det har med enkelfnuttarna att göra. De gör så att variabelnamnet behålls istället för att ersättas med variabelns värde. Lösningen är att använda dubbelfnuttar istället, eller inga fnuttar alls beroende på situationen.
Okej, testade då med detta:

Kod: Markera allt

x="hej"
y="Hej"
find "$MyPath" -type f \
	-exec rename -n \
	"s;([^a-zåäöA-ZÅÄÖ])$x([^a-zåäöA-ZÅÄÖ]);$1$y$2;g;" {} +
Då sket den i $1 och $2, så jag fick hopskrivning, så att exempelvis frasen ”säg hej nu” blir ”sägHejnu”…

Min avsikt med ”([^a-zåäöA-ZÅÄÖ])” är att undvika att ord som ”shejk” konverteras till ”sHejk” och så vidare. Därför letar jag bara efter ord (namn i mitt fall) som föregås och efterföljs av ett tecken som är vad som helst utom en bokstav, och dessa tecken ska ju även inkluderas i resultatet.

Så vad fick dem att försvinna?

Re: Massnamnbyte på filer i given mapp med undermappar

Postat: 12 nov 2010, 22:57
av Konservburk
Du måste escapea $1 och $2 om du inte vill att de ska ersättas av skalet. Det gör du enklast genom att sätta ett backlash framför dollartecknet så här: \$1

Re: Massnamnbyte på filer i given mapp med undermappar

Postat: 12 nov 2010, 23:00
av Johnny Rosenberg
Konservburk skrev:Du måste escapea $1 och $2 om du inte vill att de ska ersättas av skalet. Det gör du enklast genom att sätta ett backlash framför dollartecknet så här: \$1
Fint svenskt ord där, ”escapea”… ;D

Det funkade i alla fall, så nu kan jag nog ånyo markera tråden som löst…

Tack!

Re: Massnamnbyte på filer i given mapp med undermappar [LÖST

Postat: 12 nov 2010, 23:08
av Konservburk
Det blev ju en fin övning i fnuttologi det här, även om svenskan blev lite lidande. :)