/ Forside / Teknologi / Hardware / Mac / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Mac
#NavnPoint
UlrikB 4810
kipros 1675
Klaudi 1010
myg 920
pifo 907
Stouenberg 838
molokyle 830
Bille1948 815
rotw 760
10  EXTERMINA.. 750
Hjælp til .command fil
Fra : Storm


Dato : 20-02-03 11:19

Jeg har fået hjælp til at konstruere et script (eller er det et program)
som jeg ved dobbeltklik kan få til at liste filer med mere end 31
karakterer i terminalen. Sådan forstår jeg det ihvertfald.

Jeg har tilrettet det lidt så det ser sådan ud:

______

#!/bin/zsh

#Starting_folder="~Desktop/Folder/Files"
Starting_folder="/Users/myname/Desktop/Folder/FilesI"
find $Starting_folder -print | while read file
do
name=${file##*/}
if [[ ${#name} -gt 31 ]]; then
echo $file
fi
done

______

Men den melder fejl når jeg kører det, selvfølgelig fordi jeg har lavet
det i TextEdit, så jeg får noget snask-kode med.

Jeg skulle kunne løse det ved i TextEdit at sige Format - Make Plain
text. Men når jeg gør det og gemmer som char31.command, melder den at
den ikke kan åbne og sandsynligvis ikke er eksekverbar.

Er der nogen der kan give et tip til hvad fejlen er?
Hvad betyder første linje:
#!/bin/zsh
- og skal den overhovedet med?
Hvor er det rigtige sted at indskrive sådan en sag? Kan man gøre det i
terminalen, og få lov at gemme som en .command fil herfra?
Eller er det ok at gøre det i TextEdit?

--
Venlig hilsen
Nina Storm

 
 
Jonas Voss (20-02-2003)
Kommentar
Fra : Jonas Voss


Dato : 20-02-03 11:36

In dk.edb.mac, Storm wrote:

[snip - script]

> Men den melder fejl når jeg kører det, selvfølgelig fordi jeg har lavet
> det i TextEdit, så jeg får noget snask-kode med.
>
> Jeg skulle kunne løse det ved i TextEdit at sige Format - Make Plain
> text. Men når jeg gør det og gemmer som char31.command, melder den at
> den ikke kan åbne og sandsynligvis ikke er eksekverbar.

Hvis du blot gemmer den som en textfil er det netop det, en textfil.
For at et script skal kunne afvikles skal den laves om til en
executable, og det gøres med chmod (change mode, se længere nede,
eller 'man chmod').

> Er der nogen der kan give et tip til hvad fejlen er?
> Hvad betyder første linje:
> #!/bin/zsh
> - og skal den overhovedet med?

Det betyder det er et zsh shell-script, og ja, linien skal med, ellers
ved maskinen ikke hvilket program der skal afvikles det.

> Hvor er det rigtige sted at indskrive sådan en sag? Kan man gøre det i
> terminalen, og få lov at gemme som en .command fil herfra?
> Eller er det ok at gøre det i TextEdit?

Jeg ville gøre det i Pico i terminalen, eller i BBEdit. TextEdit er
ikke særlig god til det med mindre man slår alt rtf og html fra.

% Pico char31.command

Vil åbne en fil med navnet 'char31.command', paste det du allerede har
skrevet ind i dokumentet og tryk på ctrl+o, enter, ctrl+x. Dernæst,
skriv følgende i terminalen:

% chmod o+rx char31.command

Dernæst skriver du:

% ./char31.command

Så skulle det køre.

--
| Jonas @ 55.75, 12.42 | <http://verture.net/> |

"One's never alone with a rubber duck."

Storm (20-02-2003)
Kommentar
Fra : Storm


Dato : 20-02-03 15:48

Jonas Voss <voss@null.dk> wrote

Tak for dit gode svar.
>
> Jeg ville gøre det i Pico i terminalen, eller i BBEdit. TextEdit er
> ikke særlig god til det med mindre man slår alt rtf og html fra.

Jeg er for travl til at prøve det af (jeg tvinger mig til at lade
være
Jeg åbnede BBEdit og pastede min tekst ind og gemte som cahr31.command,
det troede jeg ville udføre kommandoen, men det åbner bare filen.
>
> % Pico char31.command
>
> Vil åbne en fil med navnet 'char31.command', paste det du allerede har
> skrevet ind i dokumentet og tryk på ctrl+o, enter, ctrl+x. Dernæst,
> skriv følgende i terminalen:
>
> % chmod o+rx char31.command
>
> Dernæst skriver du:
>
> % ./char31.command
>
> Så skulle det køre.

Det sidste her lige min koncentration, det må vente til senere.

Tak for indput.

--
Venlig hilsen
Nina Storm

Thorkil Olesen (20-02-2003)
Kommentar
Fra : Thorkil Olesen


Dato : 20-02-03 22:27


> Jonas Voss <voss@null.dk> wrote
>
> > skriv følgende i terminalen:
> >
> > % chmod o+rx char31.command
> >
> > Dernæst skriver du:
> >
> > % ./char31.command

Hvis det bare er for at køre scriptet en enkelt gang, så kan du i stedet
for ovenstående blot skrive:

zsh char31.command

--
Thorkil Olesen,
Hanstholm.

Storm (21-02-2003)
Kommentar
Fra : Storm


Dato : 21-02-03 08:47

Thorkil Olesen <slet.dette.thorkil.og.dette@pip.dknet.dk> wrote:

> > Jonas Voss <voss@null.dk> wrote
> >
> > > skriv følgende i terminalen:
> > >
> > > % chmod o+rx char31.command
> > >
> > > Dernæst skriver du:
> > >
> > > % ./char31.command
>
> Hvis det bare er for at køre scriptet en enkelt gang, så kan du i stedet
> for ovenstående blot skrive:
>
> zsh char31.command

Hmmm - nu har jeg prøvet at gøre som Jonas foreslog i terminalen, men
der er nok noget han forudsætter som jeg ikke ved, når jeg prøver med:

% Pico char31.command

er resultatet bare:

Welcome to Darwin!
[Nina-Storms-Computer] ninastorm% % Pico char31.command
%: Too many arguments.
[Nina-Storms-Computer] ninastorm%

Jeg har prøvet med lidt forskellignt efter ninastorm% inden % Pico...
men uden held.

Når jeg dobbeltklikker på .command fil er beskeden, at den ikke er
eksekverbar.

Den ser nu sådan ud:

______

#!/bin/zsh

Starting_folder="/Users/ninastorm/Desktop/OverUnder"
find $Starting_folder -print | while read file
do
name=${file##*/}
if [[ ${#name} -gt 31 ]]; then
echo $file
fi
done

______

- og åbner kun filen, udfører intet.
Jeg vil gerne have den som et "program" jeg kan køre når jeg har brug
for det.

--
Venlig hilsen
Nina Storm

Jonas Voss (21-02-2003)
Kommentar
Fra : Jonas Voss


Dato : 21-02-03 14:23

In dk.edb.mac, Storm wrote:

> Hmmm - nu har jeg prøvet at gøre som Jonas foreslog i terminalen, men
> der er nok noget han forudsætter som jeg ikke ved, når jeg prøver med:
>
> % Pico char31.command
>
> er resultatet bare:
>
> Welcome to Darwin!
> [Nina-Storms-Computer] ninastorm% % Pico char31.command
> %: Too many arguments.
> [Nina-Storms-Computer] ninastorm%
>
> Jeg har prøvet med lidt forskellignt efter ninastorm% inden % Pico...
> men uden held.

Du skal ikke skrive %'et, det indikerer blot at du skal skrive det
efterfølgende i prompten.

--
| Jonas @ 55.75, 12.42 | <http://verture.net/> |

"I went mad for a while,' said Ford, 'did me no end of good."

Storm (21-02-2003)
Kommentar
Fra : Storm


Dato : 21-02-03 14:52

Jonas Voss <voss@null.dk> wrote:

> > Jeg har prøvet med lidt forskellignt efter ninastorm% inden % Pico...
> > men uden held.
>
> Du skal ikke skrive %'et, det indikerer blot at du skal skrive det
> efterfølgende i prompten.

Tak Ok - det er næsten en hån at jeg bliver ved.

[Nina-Storms-Computer] ninastorm% chmod o+rx char31.command
[Nina-Storms-Computer] ninastorm% ./char31.command
../char31.command: Permission denied.

Er det sidste jeg får ud af det.

Jeg venter til weekenden, og får lidt hjælp "on-site" - det er vist
nødvendigt.

- Men mange tak.

--
Venlig hilsen
Nina Storm

Storm (22-02-2003)
Kommentar
Fra : Storm


Dato : 22-02-03 23:25

Nu har jeg en lille fil (lavet med pico) som jeg kan paste ind i
terminalen og ændre stistuktur og parameter for filnavnlængde.
De for lange filnavne kan jeg så "pipe" til en tekst fil.

Hovedproblemet var hvor jeg stod når jeg udførte min kommando, og hvor
kommando filen lå.

Rigtig dejligt. Tak for indput. Det var lige nok til at min hjælper
ville hjælpe...

Han er lidt rusten på sin Unix, og nu er der et lille "problem" tilbage:
Tekstfilen accepterer ikke specialtegn og æ, ' og å. Jeg kan leve med
det, men ville gerne have det løst. Han leder efter unixtodos eller
lignende man kan ikke finde noget.

Er det muligt at rette?

--
Venlig hilsen
Nina Storm

Jonas Voss (23-02-2003)
Kommentar
Fra : Jonas Voss


Dato : 23-02-03 17:18

In dk.edb.mac, Storm wrote:

> [Nina-Storms-Computer] ninastorm% ./char31.command
> ./char31.command: Permission denied.
>
> Er det sidste jeg får ud af det.

Noget tyder på at du ikke har rettigheder til at eksekvere filen. Prøv
med følgende:

% chown ninastorm:staff char31.command

Dernæst:

% ./char31.command

Hjalp det?

--
| Jonas @ 55.75, 12.42 | <http://verture.net/> |

Fuzzy logic: How we think at 2:00 AM after the bars close.

Jonas Voss (23-02-2003)
Kommentar
Fra : Jonas Voss


Dato : 23-02-03 17:27

In dk.edb.mac, Jonas Voss wrote:

> Noget tyder på at du ikke har rettigheder til at eksekvere filen. Prøv
> med følgende:
>
> % chown ninastorm:staff char31.command
>
> Dernæst:
>
> % ./char31.command
>
> Hjalp det?

Formentlig ikke. Til gengæld hjælper det at skrive:

% zsh ./char31.command

Som Thorkil foreslog. Det virker i hvert fald her.

--
| Jonas @ 55.75, 12.42 | <http://verture.net/> |

No trees were killed in the sending of this message. However,
a large number of electrons were terribly inconvenienced.

Storm (24-02-2003)
Kommentar
Fra : Storm


Dato : 24-02-03 08:54

Jonas Voss <voss@null.dk> wrote:
>
> Formentlig ikke. Til gengæld hjælper det at skrive:
>
> % zsh ./char31.command
>
> Som Thorkil foreslog. Det virker i hvert fald her.

Jeg kan snart ikke huske om jeg brugte det eller ej.
Men det jeg har gjort nu virker.

I en mappe: Longfiles har jeg min kommandofile: filnavnlaengde.command
liggende, den er lavet med Pico, og ser nu sådan ud:

#!/bin/zsh

Starting_folder=$1
find $Starting_folder -print | while read file
do
name=${file##*/}
if [[ ${#name} -gt $2 ]]; then
echo $file
fi
done

Når jeg vil køre den går jeg i terminalen og siger:
cd Longfiles og her siger jeg så:
../filnavnlaengde.command /Users/ninastorm/Desktop/Mappe 31 >
filover31tegn.txt

Så får jeg et dokument "filover31tegn.txt" med de for lange filnavne.
Det eneste problem er bare at i denne tekstfil er å, ø og å samt
specialtegn forkerte. Er der en nem løsning på det?

--
Venlig hilsen
Nina Storm

Jonas Voss (24-02-2003)
Kommentar
Fra : Jonas Voss


Dato : 24-02-03 09:09

In dk.edb.mac, Storm wrote:

> Når jeg vil køre den går jeg i terminalen og siger:
> cd Longfiles og her siger jeg så:
> ./filnavnlaengde.command /Users/ninastorm/Desktop/Mappe 31 >
> filover31tegn.txt
>
> Så får jeg et dokument "filover31tegn.txt" med de for lange filnavne.
> Det eneste problem er bare at i denne tekstfil er å, ø og å samt
> specialtegn forkerte. Er der en nem løsning på det?

Det er jeg bange for at der ikke er. Terminalen understøtter ikke
dansk tegnsæt, svjv, men har du evt. prøvet at ændre din terminal til
at køre med ISO Latin 1 tegnsæt?

Terminal -> Window Settings -> Display

Korriger selv for andet OS sprog.

--
| Jonas @ 55.75, 12.42 | <http://verture.net/> |

    You live and learn. At any rate, you live.

Storm (24-02-2003)
Kommentar
Fra : Storm


Dato : 24-02-03 09:22

Jonas Voss <voss@null.dk> wrote:

> In dk.edb.mac, Storm wrote:
>
> > Når jeg vil køre den går jeg i terminalen og siger:
> > cd Longfiles og her siger jeg så:
> > ./filnavnlaengde.command /Users/ninastorm/Desktop/Mappe 31 >
> > filover31tegn.txt
> >
> > Så får jeg et dokument "filover31tegn.txt" med de for lange filnavne.
> > Det eneste problem er bare at i denne tekstfil er å, ø og å samt
> > specialtegn forkerte. Er der en nem løsning på det?
>
> Det er jeg bange for at der ikke er. Terminalen understøtter ikke
> dansk tegnsæt, svjv, men har du evt. prøvet at ændre din terminal til
> at køre med ISO Latin 1 tegnsæt?
>
> Terminal -> Window Settings -> Display
>
> Korriger selv for andet OS sprog.

Tak - jeg prøver (med min Unix-hjælper) - funkede ikke i første hug.

Han rodede efter noget Unix2dos eller Unixtodos eller noget "greb" for
at oversætte tror jeg, men han er lidt rusten på sin Unix som jeg skrev.

Jeg kan nu godt bruge det til noget som det er, men nu er det bl.a.
franske og andre udenlandske filer med mange specialtegn. Så...

--
Venlig hilsen
Nina Storm

Jonas Voss (24-02-2003)
Kommentar
Fra : Jonas Voss


Dato : 24-02-03 09:52

In dk.edb.mac, Storm wrote:

> Han rodede efter noget Unix2dos eller Unixtodos eller noget "greb" for
> at oversætte tror jeg, men han er lidt rusten på sin Unix som jeg skrev.

Det er nok unix2dos han leder efter:

<http://www.osxgnu.org/software/Fileutils/Unix2Dos/>

Den kan også den anden vej - dos2unix.

Mht. til grep bliver det noget med at pipe textfilens indhold ind i en
grep kommando der laver en regexsøgning efter de bogstaver der bliver
sære, og på den baggrund retter indholdet i textfilen til de rigtige
tegn.

Jeg kan lave det i PHP, men jeg er ikke så stiv i shell-scripts. Ville
det være af interesse at få et PHP-script der gjorde det? Kræver godt
nok at det afvikles på en webserver, hvilket jo yderligere komplicerer
arbejdsprocessen. Men altså, bare sig til.

--
| Jonas @ 55.75, 12.42 | <http://verture.net/> |

Sorry, no quote today.

Storm (24-02-2003)
Kommentar
Fra : Storm


Dato : 24-02-03 10:09

Jonas Voss <voss@null.dk> wrote:

> In dk.edb.mac, Storm wrote:
>
> > Han rodede efter noget Unix2dos eller Unixtodos eller noget "greb" for
> > at oversætte tror jeg, men han er lidt rusten på sin Unix som jeg skrev.
>
> Det er nok unix2dos han leder efter:
>
> <http://www.osxgnu.org/software/Fileutils/Unix2Dos/>
>
> Den kan også den anden vej - dos2unix.
>
> Mht. til grep bliver det noget med at pipe textfilens indhold ind i en
> grep kommando der laver en regexsøgning efter de bogstaver der bliver
> sære, og på den baggrund retter indholdet i textfilen til de rigtige
> tegn.
>
> Jeg kan lave det i PHP, men jeg er ikke så stiv i shell-scripts. Ville
> det være af interesse at få et PHP-script der gjorde det? Kræver godt
> nok at det afvikles på en webserver, hvilket jo yderligere komplicerer
> arbejdsprocessen. Men altså, bare sig til.

Du er fantastisk hjælpsom - tusind tak.
Jeg har for travlt til at se på det nu, men vil meget gerne vende
tilbage om et par dage.

Det er faktisk rigtigt sjovt at det også er rigtig brugbart.

--
Venlig hilsen
Nina Storm

Storm (24-02-2003)
Kommentar
Fra : Storm


Dato : 24-02-03 10:12

Jonas Voss <voss@null.dk> wrote:

> Jeg kan lave det i PHP, men jeg er ikke så stiv i shell-scripts. Ville
> det være af interesse at få et PHP-script der gjorde det? Kræver godt
> nok at det afvikles på en webserver, hvilket jo yderligere komplicerer
> arbejdsprocessen. Men altså, bare sig til.

Problemet er at jeg netop ikke kan få filerne over på en server på grund
at de lange filnavne. - Er det så misforstået at jeg ikke kan bruge den
løsning?

--
Venlig hilsen
Nina Storm

Jonas Voss (24-02-2003)
Kommentar
Fra : Jonas Voss


Dato : 24-02-03 11:52

In dk.edb.mac, Storm wrote:

> Problemet er at jeg netop ikke kan få filerne over på en server på grund
> at de lange filnavne. - Er det så misforstået at jeg ikke kan bruge den
> løsning?

Nej, ikke helt. Mit foreslag gik på, at den tekstfil dit nuværende
script genererer kunne parses via PHP, der kunne erstatte
krimskramstegn med de specialtegn der oprindeligt stod, og derefter
sender filen tilbage til dig.

Det lyder dog mere som om det ville være smart at lade PHP lave det
hele, dvs. for hver fil du gerne vil oplaste til serveren gør du det
via et webinterface, hvor et PHP-script tager sig af at ændre filnavn
og lægge filen det rette sted i serverens filsystem.

Man kan sikkert også gøre det med shell-scripts og perl, nu foreslår
jeg blot PHP, fordi det er det eneste jeg kan.

Hvad er det nu for en server filerne skal ligge på?

--
| Jonas @ 55.75, 12.42 | <http://verture.net/> |

Sorry, no quote today.

Storm (24-02-2003)
Kommentar
Fra : Storm


Dato : 24-02-03 21:08

"Jonas Voss" <voss@null.dk> skrev

> Nej, ikke helt. Mit foreslag gik på, at den tekstfil dit nuværende
> script genererer kunne parses via PHP, der kunne erstatte
> krimskramstegn med de specialtegn der oprindeligt stod, og derefter
> sender filen tilbage til dig.

Det er simpelthen også hvad jeg er interesseret i.
unix2dos lod terminalen som om den ikke kendte, men det skal
måske undersøges lidt nærmere på dit link. Kræver det et andet
program installeret? For mig ser det sådan ud.

> Det lyder dog mere som om det ville være smart at lade PHP lave det
> hele, dvs. for hver fil du gerne vil oplaste til serveren gør du det
> via et webinterface, hvor et PHP-script tager sig af at ændre filnavn
> og lægge filen det rette sted i serverens filsystem.

Det er nok for meget at gøre ud af det. Jeg vil også gerne selv styre
hvad filerne skal omdøbes til.

> Man kan sikkert også gøre det med shell-scripts og perl, nu foreslår
> jeg blot PHP, fordi det er det eneste jeg kan.

Men det er da heller ikke dårligt at kunne

> Hvad er det nu for en server filerne skal ligge på?

Det er en NT server, som tillader 256 karakterer i filnavne gemt ned
fra pc'er, men kommer de fra en Mac tillader den kun 31 karakterer.
Uanset om det er fra OS 9 eller OS X. Det optimale ville være at jeg
bare kunne gemme som jeg ville. OS 9 skulle så se filerne "trunkeret"
(det hedder det vist). Men pc og OS X skulle se alle karakterer.
Men kopieringen stopper altså nu, på en måde, så jeg ikke kan se,
hvor langt den nåede.

--
Venlig hilsen Nina



Jonas Voss (25-02-2003)
Kommentar
Fra : Jonas Voss


Dato : 25-02-03 16:50

In dk.edb.mac, Storm wrote:

> unix2dos lod terminalen som om den ikke kendte, men det skal
> måske undersøges lidt nærmere på dit link. Kræver det et andet
> program installeret? For mig ser det sådan ud.

Ja, det kræver det jeg linkede til.

>> Det lyder dog mere som om det ville være smart at lade PHP lave det
>> hele, dvs. for hver fil du gerne vil oplaste til serveren gør du det
>> via et webinterface, hvor et PHP-script tager sig af at ændre filnavn
>> og lægge filen det rette sted i serverens filsystem.
>
> Det er nok for meget at gøre ud af det. Jeg vil også gerne selv styre
> hvad filerne skal omdøbes til.

Ok, det kan også laves i PHP, men så begynder det at blive en større
omgang. For mig i hvert fald.

>> Man kan sikkert også gøre det med shell-scripts og perl, nu foreslår
>> jeg blot PHP, fordi det er det eneste jeg kan.
>
> Men det er da heller ikke dårligt at kunne

Nej da, og det er sjovt (:

> Det er en NT server, som tillader 256 karakterer i filnavne gemt ned
> fra pc'er, men kommer de fra en Mac tillader den kun 31 karakterer.
> Uanset om det er fra OS 9 eller OS X. Det optimale ville være at jeg
> bare kunne gemme som jeg ville. OS 9 skulle så se filerne "trunkeret"
> (det hedder det vist). Men pc og OS X skulle se alle karakterer.
> Men kopieringen stopper altså nu, på en måde, så jeg ikke kan se,
> hvor langt den nåede.

Ah ja, den drilske NT-server. Den har vi vist hørt om et par gange
efterhånden (:

--
| Jonas @ 55.75, 12.42 | <http://verture.net/> |

The sooner you fall behind,
the more time you'll have to catch up. - Steven Wright

Søg
Reklame
Statistik
Spørgsmål : 177517
Tips : 31968
Nyheder : 719565
Indlæg : 6408636
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste