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

Här diskuterar vi skal, kommandon och klassiska linuxverktyg.
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: Massnamnbyte på filer i given mapp med undermappar

Inlägg 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.
Användarvisningsbild
Johnny Rosenberg
Inlägg: 1256
Blev medlem: 23 jun 2007, 16:18
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Kontakt:

Re: Massnamnbyte på filer i given mapp med undermappar

Inlägg 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?
Vänliga hälsningar

Johnny Rosenberg
ジョニー・ローゼンバーグ

IEEE 1541 - binära prefix
ISO 8601 - datum och tid
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: Massnamnbyte på filer i given mapp med undermappar

Inlägg 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
Användarvisningsbild
Johnny Rosenberg
Inlägg: 1256
Blev medlem: 23 jun 2007, 16:18
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Kontakt:

Re: Massnamnbyte på filer i given mapp med undermappar

Inlägg 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!
Vänliga hälsningar

Johnny Rosenberg
ジョニー・ローゼンバーグ

IEEE 1541 - binära prefix
ISO 8601 - datum och tid
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

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

Inlägg av Konservburk »

Det blev ju en fin övning i fnuttologi det här, även om svenskan blev lite lidande. :)
Skriv svar

Återgå till "Terminalforum"