/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
erstatte ; med .
Fra : Søren Steinmetz


Dato : 09-01-10 03:01

Jeg har et lille spørgsmål

Jeg er ved at portere min mail fra en gammel qmail (et SME system) til
ny server baseret på postfix.

Qmail benytter et ; forrest i filnavnene
Postfix benytter et . forrest i filnavnene

Synes ikke rigtig jeg kan få flg. kode til at virke, nok fordi der
indgår det . i navnet.

<code>

for f in *; do mv $f `echo $f | tr ';' '.'`
done;

</code>

er der en anden måde, eller skal jeg igang med manuelt at omdøbe 200+
foldere ?


Mvh
Søren

 
 
Jacob Gaarde (09-01-2010)
Kommentar
Fra : Jacob Gaarde


Dato : 09-01-10 05:41

On Sat, 09 Jan 2010 03:00:35 +0100
Søren Steinmetz <steine@reopos.INVALIdk> wrote:

> Jeg har et lille spørgsmål

--SNIP code-sample--

> er der en anden måde, eller skal jeg igang med manuelt at omdøbe 200+
> foldere ?

kan du ikke sætte IFS i dit script ?

--
--
//Jacob Gaarde
//Dont reply to my (apparent) e-mail address. Instead Use
//e-mail : jgaarde <at> gmail <dot> com
<http://www.linkedin.com/in/jacobgaarde>


Søren Steinmetz (09-01-2010)
Kommentar
Fra : Søren Steinmetz


Dato : 09-01-10 13:19

Jacob Gaarde skrev:
> On Sat, 09 Jan 2010 03:00:35 +0100
> Søren Steinmetz <steine@reopos.INVALIdk> wrote:
>
>> Jeg har et lille spørgsmål
>
> --SNIP code-sample--
>
>> er der en anden måde, eller skal jeg igang med manuelt at omdøbe 200+
>> foldere ?
>
> kan du ikke sætte IFS i dit script ?
>

Muligvis, nu er jeg stadig lettere newbie omkring *nix commandline (og
er snart 12-14 år siden jeg sidst lavede noget i dos sytemerne)

kikker på det senere hvis jeg ikke får det andet til at virke.

mvh
Søren

Klaus Alexander Seis~ (09-01-2010)
Kommentar
Fra : Klaus Alexander Seis~


Dato : 09-01-10 10:24

Søren Steinmetz skrev:

> Qmail benytter et ; forrest i filnavnene
> Postfix benytter et . forrest i filnavnene
>
> Synes ikke rigtig jeg kan få flg. kode til at virke, nok fordi
> der indgår det . i navnet.
>
><code>
>
> for f in *; do mv $f `echo $f | tr ';' '.'`
> done;
>
></code>

Hvordan virker det ikke?

#v+

$ mkdir /tmp/test && cd $_
$ touch \;{a,b,c} && ls -la
total 0
drwxr-xr-x 2 klaus klaus 100 2010-01-09 10:19 .
drwxrwxrwt 10 root root 240 2010-01-09 10:19 ..
-rw-r--r-- 1 klaus klaus 0 2010-01-09 10:19 ;a
-rw-r--r-- 1 klaus klaus 0 2010-01-09 10:19 ;b
-rw-r--r-- 1 klaus klaus 0 2010-01-09 10:19 ;c
$ for f in * ; do mv $f $(echo $f | tr ';' '.') ; done
$ ls -la
total 0
drwxr-xr-x 2 klaus klaus 100 2010-01-09 10:20 .
drwxrwxrwt 10 root root 240 2010-01-09 10:19 ..
-rw-r--r-- 1 klaus klaus 0 2010-01-09 10:19 .a
-rw-r--r-- 1 klaus klaus 0 2010-01-09 10:19 .b
-rw-r--r-- 1 klaus klaus 0 2010-01-09 10:19 .c
$

#v-

Mvh,

--
Klaus Alexander Seistrup
http://klaus.seistrup.dk/

Søren Steinmetz (09-01-2010)
Kommentar
Fra : Søren Steinmetz


Dato : 09-01-10 13:17

Klaus Alexander Seistrup skrev:
> Søren Steinmetz skrev:
>
>>
>> <code>
>>
>> for f in *; do mv $f `echo $f | tr ';' '.'`
>> done;
>>
>> </code>
>
> Hvordan virker det ikke?
>

Den fejler med beskeden at . er et bibliotek.

hmmm kikker på det senere når jeg er lidt mere vågen.

Mvh
Søren

Ukendt (09-01-2010)
Kommentar
Fra : Ukendt


Dato : 09-01-10 13:36

Søren Steinmetz wrote:
> Klaus Alexander Seistrup skrev:
>> Søren Steinmetz skrev:
>>
>>>
>>> <code>
>>>
>>> for f in *; do mv $f `echo $f | tr ';' '.'`
>>> done;
>>>
>>> </code>
>>
>> Hvordan virker det ikke?
>>
>
> Den fejler med beskeden at . er et bibliotek.
>

Hvilken shell bruger du ? * burde ikke matche på . og ..

/Martin

Klaus Ellegaard (09-01-2010)
Kommentar
Fra : Klaus Ellegaard


Dato : 09-01-10 13:43

<traxplayer@gmail.com> writes:

>> Den fejler med beskeden at . er et bibliotek.

>Hvilken shell bruger du ? * burde ikke matche på . og ..

Men det gør "find" - i hvert fald når man ikke beder om "-type f"
eller lignende.

Mvh.
   Klaus.

Kent Friis (09-01-2010)
Kommentar
Fra : Kent Friis


Dato : 09-01-10 13:44

Den Sat, 09 Jan 2010 13:17:00 +0100 skrev Søren Steinmetz:
> Klaus Alexander Seistrup skrev:
>> Søren Steinmetz skrev:
>>
>>>
>>> <code>
>>>
>>> for f in *; do mv $f `echo $f | tr ';' '.'`
>>> done;
>>>
>>> </code>
>>
>> Hvordan virker det ikke?
>>
>
> Den fejler med beskeden at . er et bibliotek.

Fra mv eller tr?

mv kan sagtens flytte biblioteker, så jeg vil gætte på at det er tr
der brokker sig. Har du fået tilføjet en ekstra parameter?

Mvh
Kent
--
"The Brothers are History"

Søren Steinmetz (09-01-2010)
Kommentar
Fra : Søren Steinmetz


Dato : 09-01-10 15:09

Kent Friis skrev:
> Den Sat, 09 Jan 2010 13:17:00 +0100 skrev Søren Steinmetz:
>> Klaus Alexander Seistrup skrev:
>
> Fra mv eller tr?
>
> mv kan sagtens flytte biblioteker, så jeg vil gætte på at det er tr
> der brokker sig. Har du fået tilføjet en ekstra parameter?


mit skift.sh ser sådan ud:
<code>
for file "-type f" in *;
do
mv $file (echo $file | tr ';' '.')
done;
</code>

Fejlen jeg får er:

-bash: ./: is a directory

En ting er så filer der starter med ; (;Arkiv)
Noget andet er f.eks. undermappefiler: (;Arkiv;Arkiv2005)

Ellers er der ikke andet for end den hårde vej,
hvis ikke min søgning efter mere commandline viden snart giver potr ;)

Mvh
Søren

Søren Steinmetz (09-01-2010)
Kommentar
Fra : Søren Steinmetz


Dato : 09-01-10 15:20

Klaus Alexander Seistrup skrev:
> Søren Steinmetz skrev:
>
>> Qmail benytter et ; forrest i filnavnene
>> Postfix benytter et . forrest i filnavnene
>>
>> Synes ikke rigtig jeg kan få flg. kode til at virke, nok fordi
>> der indgår det . i navnet.
>>
>> <code>
>>
>> for f in *; do mv $f `echo $f | tr ';' '.'`
>> done;
>>
>> </code>
>
> Hvordan virker det ikke?
>

Tak Klaus,

kikkede en ekstra gang efter nu, havde glemt min Putty oversatte ` ` med
( )

Nu lykkedes det med nogle af mapperne, men dem med mellemrum i fejler....

Nå det løser sig vel.

Mvh
Søren

Søren Steinmetz (09-01-2010)
Kommentar
Fra : Søren Steinmetz


Dato : 09-01-10 15:30

Søren Steinmetz skrev:
>
> kikkede en ekstra gang efter nu, havde glemt min Putty oversatte ` ` med
> ( )
>
> Nu lykkedes det med nogle af mapperne, men dem med mellemrum i fejler....
>
> Nå det løser sig vel.

Og sørenme om ikke det også løste sig.

for i in *; do mv "$i" `echo $i | tr ' ' '_'`; done


Problem løst, weekend kan nydes.

Tak for hjælpen med at starte de små grå i mit hoved.

Mvh
Søren

Søg
Reklame
Statistik
Spørgsmål : 177438
Tips : 31962
Nyheder : 719565
Indlæg : 6408043
Brugere : 218879

Månedens bedste
Årets bedste
Sidste års bedste