/ 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
masse-omdøbning af filer
Fra : Hans Larsen


Dato : 23-02-05 16:37

hej,

Jeg har en hel bunke filer (ca. 800) som jeg skal ha' flyttet fra min
linux-maskine til min win-maskine. Problemet er at nevnene på alle filerne
indeholder et "?". Er der nogen som har en hurtig måde hvorpå jeg kan bytte
det "?" ud med fx. en "-", således windows kan læse navnene rigtigt.

Hans



 
 
Sune Vuorela (23-02-2005)
Kommentar
Fra : Sune Vuorela


Dato : 23-02-05 16:42

On 2005-02-23, Hans Larsen <someone@microsoft.com> wrote:
> hej,
>
> Jeg har en hel bunke filer (ca. 800) som jeg skal ha' flyttet fra min
> linux-maskine til min win-maskine. Problemet er at nevnene på alle filerne
> indeholder et "?". Er der nogen som har en hurtig måde hvorpå jeg kan bytte
> det "?" ud med fx. en "-", således windows kan læse navnene rigtigt.

hvis det er en ordentlig rename, så burde dette gøre det:

rename 's/?/-/' *


(måske skal det være \? ?)
--
Sune

Jesper Louis Anderse~ (24-02-2005)
Kommentar
Fra : Jesper Louis Anderse~


Dato : 24-02-05 00:01

Sune Vuorela <nospam@vuorela.dk> wrote:

> hvis det er en ordentlig rename, s? burde dette g?re det:
>
> rename 's/?/-/' *

Den gaar bare ikke paa samtlige unix. Der maa man have sed(1) til hjaelp.

--
jlouis

Sune Vuorela (24-02-2005)
Kommentar
Fra : Sune Vuorela


Dato : 24-02-05 00:32

On 2005-02-23, Jesper Louis Andersen <jlouis@miracle.mongers.org> wrote:
> Sune Vuorela <nospam@vuorela.dk> wrote:
>
>> hvis det er en ordentlig rename, s? burde dette g?re det:
>>
>> rename 's/?/-/' *
>
> Den gaar bare ikke paa samtlige unix. Der maa man have sed(1) til hjaelp.

Lagde du mærke til ordet ordentlig ;)

Debian har ordentlig rename som standard ;)

--
Sune

Thorbjoern Ravn Ande~ (24-02-2005)
Kommentar
Fra : Thorbjoern Ravn Ande~


Dato : 24-02-05 08:32

Sune Vuorela <nospam@vuorela.dk> writes:

> Lagde du mærke til ordet ordentlig ;)
>
> Debian har ordentlig rename som standard ;)

Kunsten er jo at udføre opgaver kun med de kommandoer der fandtes i
AT&T Unix :)

(Eventuelle purister der nu vil nævne noget om Perl og brug af samme,
bedes besvare det oprindelige spørgsmål først

--
Thorbjørn Ravn Andersen
http://www.unixsnedkeren.dk - Unix, Java, Web, Netværk, Århus

Michael Knudsen (24-02-2005)
Kommentar
Fra : Michael Knudsen


Dato : 24-02-05 11:03

On 2005-02-24, Thorbjoern Ravn Andersen <nospam0000@c.dk> wrote:
> (Eventuelle purister der nu vil nævne noget om Perl og brug af samme,
> bedes besvare det oprindelige spørgsmål først

   $ for i in *\?* ; do mv $i $(echo $i | sed 's/\?/_/g') ; done

Hvad skal man med perl, med mindre andre ikke maa se, hvad ens kode
goer? :)

Mvh. Michael.
--
Rumour is information distilled so finely that it can filter through
anything.
-- (Terry Pratchett, Feet of Clay)

Thorbjoern Ravn Ande~ (24-02-2005)
Kommentar
Fra : Thorbjoern Ravn Ande~


Dato : 24-02-05 12:37

Michael Knudsen <e@mongers.org> writes:

>    $ for i in *\?* ; do mv $i $(echo $i | sed 's/\?/_/g') ; done

Jeg mindes ikke at $() er en sh-facilitet?

> Hvad skal man med perl, med mindre andre ikke maa se, hvad ens kode
> goer? :)

Øh? Det forstod jeg ikke.

Hvis man gerne vil lave ulæselig kode er der da meget mere velegnede
alternativer end Perl.

--
Thorbjørn Ravn Andersen
http://www.unixsnedkeren.dk - Unix, Java, Web, Netværk, Århus

Jesper Louis Anderse~ (24-02-2005)
Kommentar
Fra : Jesper Louis Anderse~


Dato : 24-02-05 13:03

Thorbjoern Ravn Andersen <nospam0000@c.dk> wrote:
> Michael Knudsen <e@mongers.org> writes:
>
>> $ for i in *\?* ; do mv $i $(echo $i | sed 's/\?/_/g') ; done
>
> Jeg mindes ikke at $() er en sh-facilitet?

for i in *\?* ; do mv "$i" "`echo "$i" | sed `'s/\?/_/g'`" ; done

er bedre ja ;)

> Hvis man gerne vil lave ul?selig kode er der da meget mere velegnede
> alternativer end Perl.

Slet ikke. Perl er liniestoej.

--
jlouis

Thorbjoern Ravn Ande~ (24-02-2005)
Kommentar
Fra : Thorbjoern Ravn Ande~


Dato : 24-02-05 19:58

Jesper Louis Andersen <jlouis@miracle.mongers.org> writes:

> for i in *\?* ; do mv "$i" "`echo "$i" | sed `'s/\?/_/g'`" ; done
>
> er bedre ja ;)

Tjoh. Et godt eksempel på noget der ville vinde ved et par
variabelerklæringer i et script.

> > Hvis man gerne vil lave ul?selig kode er der da meget mere velegnede
> > alternativer end Perl.
>
> Slet ikke. Perl er liniestoej.

Læs lige din løsning igen og sig det uden at rødme

--
Thorbjørn Ravn Andersen
http://www.unixsnedkeren.dk - Unix, Java, Web, Netværk, Århus

Michael Knudsen (24-02-2005)
Kommentar
Fra : Michael Knudsen


Dato : 24-02-05 21:26

On 2005-02-24, Thorbjoern Ravn Andersen <nospam0000@c.dk> wrote:
>> for i in *\?* ; do mv "$i" "`echo "$i" | sed `'s/\?/_/g'`" ; done
>>
>> er bedre ja ;)
>
> Tjoh. Et godt eksempel på noget der ville vinde ved et par
> variabelerklæringer i et script.

Jeg har brugt mit eget idiom temmeligt tit efterhaanden, og jeg har
endnu ikke gidet lave et script til det. Det tager ikke 5 sekunder at
skrive den linie der, og jeg sliper for at huske paa et eller andet
scriptnavn.

Egentlig burde jeg nok have brugt tr i mit foerste eksempel, e.g.:

   $ for i in * ; do mv $i $(echo $i | tr 'A-Z' 'a-z') ; done

Det er nemmere end at huske paa navnet paa et eller andet script, der
laver filnavne om fra store til smaa bogstaver, ud af raekken af 200
specialiserede scripts. Det er jo derfor, man bruger unix.
--
Rumour is information distilled so finely that it can filter through
anything.
-- (Terry Pratchett, Feet of Clay)

Jesper Louis Anderse~ (24-02-2005)
Kommentar
Fra : Jesper Louis Anderse~


Dato : 24-02-05 12:58

Sune Vuorela <nospam@vuorela.dk> wrote:

> Lagde du m?rke til ordet ordentlig ;)
>
> Debian har ordentlig rename som standard ;)

Ja det gjorde jeg. Solaris har ikke rename mig bekendt. Det er ikke
en kommando i POSIX standarden. *BSD-maskiner har ikke rename mig
bekendt. At diverse Linuxmaskiner har en ligegyldig kommando kan jeg
ikke tage mig af.

Kommandoen kan laves paa en linie. Hvorfor dog skrive en masse C for at
kunne goere det samme?

--
jlouis

Peter Makholm (24-02-2005)
Kommentar
Fra : Peter Makholm


Dato : 24-02-05 12:55

Thorbjoern Ravn Andersen <nospam0000@c.dk> writes:

> Michael Knudsen <e@mongers.org> writes:
>
>>    $ for i in *\?* ; do mv $i $(echo $i | sed 's/\?/_/g') ; done
>
> Jeg mindes ikke at $() er en sh-facilitet?

Min udgave af standarden der kalder sig SUSv3 siger (XCU kapitel 2):

Command Substitution

Command substitution allows the output of a command to be
substituted in place of the command name itself. Command
substitution shall occur when the command is enclosed as follows:

$(command)

or (backquoted version):

`command`

The shell shall expand the command substitution by executing
command in a subshell environment (see Shell Execution Environment
) and replacing the command substitution (the text of command plus
the enclosing "$()" or backquotes) with the standard output of the
command, removing sequences of one or more <newline>s at the end of
the substitution.

--
Peter Makholm | We constantly have to keep in mind why natural
peter@makholm.net | languages are good at what they're good at. And to
http://hacking.dk | never forget that Perl is a human language first,
| and a computer language second

Thorbjoern Ravn Ande~ (24-02-2005)
Kommentar
Fra : Thorbjoern Ravn Ande~


Dato : 24-02-05 13:00

Peter Makholm <peter@makholm.net> writes:

> or (backquoted version):
>
> `command`

Backquotes kender jeg godt - syntaksen med $() kendte jeg ikke, men
den stod i sh-manulen til FreeBSD. Var den også med i de oprindelige
AT&T unixer?

--
Thorbjørn Ravn Andersen
http://www.unixsnedkeren.dk - Unix, Java, Web, Netværk, Århus

Kasper Dupont (23-02-2005)
Kommentar
Fra : Kasper Dupont


Dato : 23-02-05 16:53

Hans Larsen wrote:
>
> hej,
>
> Jeg har en hel bunke filer (ca. 800) som jeg skal ha' flyttet fra min
> linux-maskine til min win-maskine. Problemet er at nevnene på alle filerne
> indeholder et "?". Er der nogen som har en hurtig måde hvorpå jeg kan bytte
> det "?" ud med fx. en "-", således windows kan læse navnene rigtigt.

rename '?' - *

--
Kasper Dupont

Hans Larsen (23-02-2005)
Kommentar
Fra : Hans Larsen


Dato : 23-02-05 16:56

Ahh.... Tak Skal du ha'. Det var jo nemt. Man skal jo bare vide hvordan.

Hans

"Kasper Dupont" <kasperd@daimi.au.dk> wrote in message
news:421CA6E9.3EFADB9E@daimi.au.dk...
> Hans Larsen wrote:
>>
>> hej,
>>
>> Jeg har en hel bunke filer (ca. 800) som jeg skal ha' flyttet fra min
>> linux-maskine til min win-maskine. Problemet er at nevnene på alle
>> filerne
>> indeholder et "?". Er der nogen som har en hurtig måde hvorpå jeg kan
>> bytte
>> det "?" ud med fx. en "-", således windows kan læse navnene rigtigt.
>
> rename '?' - *
>
> --
> Kasper Dupont



Jacob Bunk Nielsen (24-02-2005)
Kommentar
Fra : Jacob Bunk Nielsen


Dato : 24-02-05 13:12

Jesper Louis Andersen <jlouis@miracle.mongers.org> writes:

> Kommandoen kan laves paa en linie. Hvorfor dog skrive en masse C for at
> kunne goere det samme?

$ head -n 1 `which rename`
#!/usr/bin/perl -w



--
Jacob - www.bunk.cc
Time sharing: The use of many people by the computer.

Jesper Louis Anderse~ (24-02-2005)
Kommentar
Fra : Jesper Louis Anderse~


Dato : 24-02-05 17:32

Jacob Bunk Nielsen <spam@bunk.cc> wrote:
> Jesper Louis Andersen <jlouis@miracle.mongers.org> writes:
>
>> Kommandoen kan laves paa en linie. Hvorfor dog skrive en masse C for at
>> kunne goere det samme?
>
> $ head -n 1 `which rename`
> #!/usr/bin/perl -w

Hvorfor dog skrive en _MASSE_ C, for at kunne skrive en linie stoej, for at
kunne det samme som sh + sed ?


--
jlouis

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408931
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste