|
| 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
| |
|
|