abonnement Unibet Coolblue Bitvavo
pi_72625469
Is dit ook 't topic om te leren hoe je files verplaatst van map x naar map y en programma's opent via shell enzo?
  donderdag 10 september 2009 @ 21:23:37 #52
147503 Iblis
aequat omnis cinis
pi_72625623
quote:
Op donderdag 10 september 2009 21:19 schreef ReWout het volgende:
Is dit ook 't topic om te leren hoe je files verplaatst van map x naar map y en programma's opent via shell enzo?
Het is meer voor wat complexere scripts zou ik zeggen, er is ook [Linux/Unix] [/Gurus/helpen/newbies]$ ./deel 26 , maar goed, ik wil je wel helpen hoor als je hier je vraag stelt. Die andere topic gaat altijd over Gnome en KDE en zo.
Daher iſt die Aufgabe nicht ſowohl, zu ſehn was noch Keiner geſehn hat, als, bei Dem, was Jeder ſieht, zu denken was noch Keiner gedacht hat.
pi_76977573
hoe laat je kleuren zien in de shell dan ?
  maandag 18 januari 2010 @ 19:24:18 #54
147503 Iblis
aequat omnis cinis
pi_76979041
Zoek op bash colors. Je hebt b.v. hier een overzicht: http://wiki.archlinux.org/index.php/Color_Bash_Prompt

Je krijgt rode tekst door zoiets in te typen:

1$ echo -e '\e[0;31m' hoi


Let wel op, daarna blijft alles rood.
Daher iſt die Aufgabe nicht ſowohl, zu ſehn was noch Keiner geſehn hat, als, bei Dem, was Jeder ſieht, zu denken was noch Keiner gedacht hat.
  dinsdag 2 februari 2010 @ 15:29:20 #55
187069 slacker_nl
Sicko pur sang
pi_77553256
Denk dat iblis deze gaat beantwoorden

1
2
3
4
5
6
7
8
9
cmd_line=$(cat /proc/cmdline)
# Ziet er ongveer zo uit:
# BOOT_IMAGE=/boot/vmlinuz-2.6.32-trunk-686 root=UUID=fcdc06c1-729c-4991-817d-e7f94ce69dc6 ro quiet

# De oplossing in perl:
cmd_line=$(echo $cmd_line | perl -p -e 's#BOOT_IMAGE=\S+##')

# De beetje brakke oplossing met sed.. 
cmd_line=$(echo $cmd_line | sed -e 's#BOOT_IMAGE=.\+ root=#root=#'


Hoe krijg ik net zo'n mooie oplossing met sed als ik heb in perl?

While I was typing:

1
2
3
sed -e 's#BOOT_IMAGE=[[:punct:][:alnum:]]\+ ##'
# of mooier en meer lijkend op het perl ding:
sed -e 's#BOOT_IMAGE=[^[:space:]]\+ ##'


Toch jammer dat sed niet de \S kent zoals perl
In theory there is no difference between theory and practice. In practice there is.
  dinsdag 2 februari 2010 @ 15:42:24 #56
147503 Iblis
aequat omnis cinis
pi_77553882
Je zegt het zelf al, maar daarbij:

Je kunt eventueel ook [^ <TAB>] doen, waarbij je voor <TAB> letterlijk een tab in je editor typt… maar dat is niet zo duidelijk. Die Perl-classes zoals \S en \s zijn echter geen POSIX, allicht dat sommige seds ze wel snappen, maar heel portable zal het niet zijn. Een letterlijke [^ <TAB>] is denk ik nog het meest portable.

Als je zeker weet dat er geen <TAB> wordt gebruikt voldoet [^ ] ook natuurlijk.
Daher iſt die Aufgabe nicht ſowohl, zu ſehn was noch Keiner geſehn hat, als, bei Dem, was Jeder ſieht, zu denken was noch Keiner gedacht hat.
  dinsdag 2 februari 2010 @ 15:47:18 #57
126003 Daniel1976
de omnibus dubitandum
pi_77554099
Ik kan nog steeds posten hier.

Helaas weet ik niet meer wat ik hier boven had getikt wel jammer.

het zal wel een rm -Rf gewest zijn

Dan moet je de man pages maar doorlezen.
pi_78601405
Hoe kan ik nou makkelijk een commando uitvoeren op een serie bestanden met nummers? Bijv ik heb File0001.jpg, File0002.jpg, File0003.jpg, etc en ik wil op ze allemaal touch uitvoeren. Het zal wel met een for-loop gaan ofzo, maar ik ben geen ster in bash scripting (ik kan met een shell overweg maar heb me nog nooit gewaagd aan shell scripts eigenlijk) dus als iemand dit me zou kunnen vertellen zou dat heel mooi zijn.
  maandag 1 maart 2010 @ 18:55:05 #59
147503 Iblis
aequat omnis cinis
pi_78601863
Nu wil het toeval dat touch op meerdere files werkt, dus dan kun je simpelweg touch File*.jpg doen bijvoorbeeld. In het geval dat je iets wilt doen wat maar met één file tegelijk kan, b.v. resizen, dan doe je het inderdaad met een for-loop. Die ziet er zo uit:

1
2
3
for i in  do
   commando $i $i.out
done;


* wordt simpelweg geëxpandeerd tot een lijst van bestanden (zoals de shell altijd doet), en vervolgens wordt voor elk element in die lijst de code tussen do en done uitgevoerd waarbij $i de waarde heeft van dat element.

(Je kunt natuurlijk ook for j in *; of for bestand in *; doen, en verandert je variabele ook in b.v. $​bestand.)

Er is een aantal zaken waar je op moet letten, in het bijzonder wanneer de bestanden spaties bevatten. Wat dat betreft is het beter om in de loop "$i" te typen.

In jouw geval zou je het zo kunnen oplossen:


1
2
3
for i in File*jpg; do
   touch "$i"
done;


Hier een voorbeeld om b.v. thumbnails te maken:


1
2
3
for i in File*jpg; do
   convert "$i" -resize 20% th_"$i".jpg
done;


Dan krijg je een hele rits nieuwe bestanden genaamd th_File0000.jpg, th_File0001.jpg, enz.

Je kunt natuurlijk altijd experimenteren met 'echo' om te zien wat het commando uiteindelijk wordt, b.v.:

1
2
3
for i in File*jpg; do
   echo convert "$i" -resize 20% th_"$i".jpg
done;


En je kunt in de shell ook de boel op 1 regel typen als je wilt:

1for i in File*jpg; do touch "$i"; done;
Daher iſt die Aufgabe nicht ſowohl, zu ſehn was noch Keiner geſehn hat, als, bei Dem, was Jeder ſieht, zu denken was noch Keiner gedacht hat.
pi_78607693
Super, thanks! Ik neem aan dat in je eerste voorbeeld je for i in * bedoelt? Er staat namelijk for i in alleen.
  maandag 1 maart 2010 @ 20:39:39 #61
147503 Iblis
aequat omnis cinis
pi_78607909
quote:
Op maandag 1 maart 2010 20:35 schreef SinofEnvy het volgende:
Super, thanks! Ik neem aan dat in je eerste voorbeeld je for i in * bedoelt? Er staat namelijk for i in alleen.
Oh ja. Foutje. Foutje van FOK! zelfs, er staat wel *; in de source, maar dat verdwijnt in een code omgeving.
Daher iſt die Aufgabe nicht ſowohl, zu ſehn was noch Keiner geſehn hat, als, bei Dem, was Jeder ſieht, zu denken was noch Keiner gedacht hat.
pi_78713775
Ik weet niet of ik met deze vraag helemaal bij het goede adres ben, maar het komt wel in de buurt volgens mij

Ik heb in C een programma geschreven dat een model simuleert (Ising model, rooster met punten die +1 of -1 kunnen zijn), en dat werkt. Nu laat ik mijn programma het uiteindelijk gecreerde rooster gewoon printen met printf.

Om de evolutie van dit rooster echter goed te kunnen bekijken voldoet dit niet echt, het rooster staat zo namelijk niet vast in de terminal, hij scrollt naar boven. Het liefste zou ik mijn programma een apart scherm laten openen waar ik het rooster telkens opnieuw in kan printen, zodat als ik mijn simulatie laat lopen ik makkelijk kan zien hoe het zich ontwikkeld. In IDL zou ik dit wel kunnen, maar ik kan nergens vinden hoe ik zoiets in C kan programmeren.

Misschien is daar ook wel een commando voor in de terminal, net zoals dat ' > output.dat ' alle output naar dat bestandje wegschrijft. Weten jullie of zoiets bestaat?

Bij voorbaat dank in ieder geval!
Sea Shepherd
Virtus omnia vincit
  donderdag 4 maart 2010 @ 00:23:41 #63
147503 Iblis
aequat omnis cinis
pi_78714086
In principe is de terminal alleen iets waarop na elkaar geprint wordt. Je zult een soort clrscr-routine moeten zoeken m.b.v. een library zoals ncurses.
Daher iſt die Aufgabe nicht ſowohl, zu ſehn was noch Keiner geſehn hat, als, bei Dem, was Jeder ſieht, zu denken was noch Keiner gedacht hat.
pi_78714319
Ja, iedere keer na een print het scherm clearen zou idd een idee zijn, maar hoe dat met die library te doen zie ik zo snel niet. Ik vraag het morgen wel even bij college, bedankt voor je antwoord in ieder geval!
Sea Shepherd
Virtus omnia vincit
  donderdag 4 maart 2010 @ 00:43:42 #65
147503 Iblis
aequat omnis cinis
pi_78714780
quote:
Op donderdag 4 maart 2010 00:30 schreef -Mzraki- het volgende:
Ja, iedere keer na een print het scherm clearen zou idd een idee zijn, maar hoe dat met die library te doen zie ik zo snel niet. Ik vraag het morgen wel even bij college, bedankt voor je antwoord in ieder geval!
Wat ook kan, want meestal blijft de terminal onderaan staan, is het rooster printen, en dan even wachten, en de volgende iteratie printen (moet het rooster wel telkens even groot zijn).

Dus zeg:

1
2
3
4
5
6
7
8
9
10
#include <unistd.h>

int main(void) {
   ...
   while(!done) {
     print_rooster();
     sleep(1); //1 seconde
               //of b.v.:
     usleep(500000); // 500000 microseconden
   }
Daher iſt die Aufgabe nicht ſowohl, zu ſehn was noch Keiner geſehn hat, als, bei Dem, was Jeder ſieht, zu denken was noch Keiner gedacht hat.
pi_78715053
Ohja, das in ieder geval wel een makkelijke methode om het snel wat beter te maken, thx
Sea Shepherd
Virtus omnia vincit
pi_90099179
Vraagje

Iemand enig idee hoe ik via shell het aantal bestanden tel wat zich in een ftp map bevindt (ben dus met ftp verbonden)?
  zaterdag 18 december 2010 @ 21:44:11 #68
29444 RemcoDelft
4 8 15 16 23 42
pi_90099416
quote:
1s.gif Op zaterdag 18 december 2010 21:38 schreef Dale. het volgende:
Vraagje

Iemand enig idee hoe ik via shell het aantal bestanden tel wat zich in een ftp map bevindt (ben dus met ftp verbonden)?
Zelfs als je een getal terugkrijgt: wat wil je dat je ftp-client daarmee doet?
Heb je geen ssh-toegang, dat maakt het eenvoudiger.
censuur :O
pi_90099715
quote:
1s.gif Op zaterdag 18 december 2010 21:44 schreef RemcoDelft het volgende:

[..]

Zelfs als je een getal terugkrijgt: wat wil je dat je ftp-client daarmee doet?
Heb je geen ssh-toegang, dat maakt het eenvoudiger.
Bestanden hernoemen, ssh toegang heb ik geloof ik wel (weet alleen niet hoe ik dat opzet, even uitzoeken)

Bestand01.jpg
Bestand02.jpg
...
Bestand**.jpg

Hernoemen naar

BestandWiii01.jpg
BestandWiii02.jpg
...
BestandWiii**.jpg
  zondag 19 december 2010 @ 03:37:32 #70
187069 slacker_nl
Sicko pur sang
pi_90112201
1rename -n 's/(Bestand)(\d+)/$1Wii$2/' Bestand*.jpg

Als je tevreden bent, -n weghalen en done :)
Je kan het ook met een for-loop doen, maar rename commando is handy :)
In theory there is no difference between theory and practice. In practice there is.
pi_90123034
quote:
1s.gif Op zondag 19 december 2010 03:37 schreef slacker_nl het volgende:

[ code verwijderd ]

Als je tevreden bent, -n weghalen en done :)
Je kan het ook met een for-loop doen, maar rename commando is handy :)
Ty :*

Ander vraagje hoe upload ik een hele directoy naar ftp? Kan alleen bestanden verplaatsen maar geen dirs..?
  zondag 19 december 2010 @ 14:32:49 #72
136730 PiRANiA
All thinking men are atheists.
pi_90123276
quote:
1s.gif Op zondag 19 december 2010 14:27 schreef Dale. het volgende:

[..]

Ty :*

Ander vraagje hoe upload ik een hele directoy naar ftp? Kan alleen bestanden verplaatsen maar geen dirs..?
Google even op lftp (mirror)
pi_90124362
quote:
1s.gif Op zondag 19 december 2010 14:32 schreef PiRANiA het volgende:

[..]

Google even op lftp (mirror)
Ty :* vraagje aan Slacker nog

1rename -n 's/(Bestand)(\d+)/$1Wii$2/' Bestand*.jpg

Kun je de regel uitleggen? Waarvoor staat die -n s/ $1 en $2 enzo :@?

Weet dat -n flag is (weet niet echter wat die doet
\d+ is decimaal of meer
* is wildcard.


Oh wacht gewoon regex toch?
  zondag 19 december 2010 @ 15:33:19 #74
187069 slacker_nl
Sicko pur sang
pi_90126107
quote:
1s.gif Op zondag 19 december 2010 14:56 schreef Dale. het volgende:

[..]

Ty :* vraagje aan Slacker nog

[ code verwijderd ]

Kun je de regel uitleggen? Waarvoor staat die -n s/ $1 en $2 enzo :@?

Weet dat -n flag is (weet niet echter wat die doet
\d+ is decimaal of meer
* is wildcard.


Oh wacht gewoon regex toch?
Het is gewoon een perl regexp ja, die -n is dat ie laat zien wat ie zou doen, zonder het daadwerkelijk te doen.
In theory there is no difference between theory and practice. In practice there is.
  zondag 19 december 2010 @ 15:48:43 #75
29444 RemcoDelft
4 8 15 16 23 42
pi_90126815
quote:
1s.gif Op zondag 19 december 2010 14:27 schreef Dale. het volgende:

[..]
Ander vraagje hoe upload ik een hele directoy naar ftp? Kan alleen bestanden verplaatsen maar geen dirs..?
Mijn persoonlijke voorkeur is tegenwoordig scp (ssh-toegang vereist):

scp -r /home/user/directory username@example.com:/home/andereusername/subdirectory # :)
censuur :O
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')