abonnement Unibet Coolblue Bitvavo
  dinsdag 8 mei 2012 @ 17:46:46 #101
44552 Black_Ninja
Ninja's bestaan!
pi_111296916
ARG!!!

Ik heb dus nu een scriptje gemaakt, als ik het handmatig uitvoer werkt het wel, in de cronjob niet!

Verder heb ik het nu wel zo ver dat als de VM machine opstart hij wel het replication script uitvoert maar hij start nogsteeds de webserver niet op! :?
Domo Arigato!
  dinsdag 8 mei 2012 @ 18:58:22 #102
136730 PiRANiA
All thinking men are atheists.
pi_111299822
quote:
0s.gif
Op dinsdag 8 mei 2012 17:46 schreef Black_Ninja het volgende:
ARG!!!

Ik heb dus nu een scriptje gemaakt, als ik het handmatig uitvoer werkt het wel, in de cronjob niet!

Verder heb ik het nu wel zo ver dat als de VM machine opstart hij wel het replication script uitvoert maar hij start nogsteeds de webserver niet op! :?
Kan aan path en environment vars liggen.
  dinsdag 8 mei 2012 @ 19:25:41 #103
44552 Black_Ninja
Ninja's bestaan!
pi_111301218
quote:
3s.gif
Op dinsdag 8 mei 2012 18:58 schreef PiRANiA het volgende:

[..]

Kan aan path en environment vars liggen.
:@ zou je dat een beetje kunnen toelichten? :@
Domo Arigato!
  dinsdag 8 mei 2012 @ 19:29:20 #104
136730 PiRANiA
All thinking men are atheists.
pi_111301411
quote:
0s.gif
Op dinsdag 8 mei 2012 19:25 schreef Black_Ninja het volgende:

[..]

:@ zou je dat een beetje kunnen toelichten? :@
Post je script eens ;)
  dinsdag 8 mei 2012 @ 19:29:37 #105
44552 Black_Ninja
Ninja's bestaan!
pi_111301426
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command
@reboot /home/media/startscripje.sh
@hourly /home/media/startscripje.sh

1
2
3
4
#!/bin/bash
clear

/usr/lib/virtualbox/VBoxManage startvm "vm" --type headless

Even mijn codes toegevoegd :@
Domo Arigato!
  dinsdag 8 mei 2012 @ 19:29:50 #106
44552 Black_Ninja
Ninja's bestaan!
pi_111301443
quote:
3s.gif
Op dinsdag 8 mei 2012 19:29 schreef PiRANiA het volgende:

[..]

Post je script eens ;)
Was al onderweg :)
Domo Arigato!
  dinsdag 8 mei 2012 @ 19:29:53 #107
45457 NightH4wk
Semper Fi!
pi_111301450
http://www.wonkity.com/~wblock/docs/html/interrupted.html

Nummer 2 van de interrupted Unix FAQ.
  dinsdag 8 mei 2012 @ 19:30:16 #108
45457 NightH4wk
Semper Fi!
pi_111301468
Ah, te laat.
  dinsdag 8 mei 2012 @ 19:33:02 #109
44552 Black_Ninja
Ninja's bestaan!
pi_111301597
quote:
0s.gif
Op dinsdag 8 mei 2012 19:29 schreef NightH4wk het volgende:
http://www.wonkity.com/~wblock/docs/html/interrupted.html

Nummer 2 van de interrupted Unix FAQ.
Dat doe ik toch goed? :@
Domo Arigato!
  dinsdag 8 mei 2012 @ 19:33:14 #110
136730 PiRANiA
All thinking men are atheists.
pi_111301612
quote:
0s.gif
Op dinsdag 8 mei 2012 19:29 schreef Black_Ninja het volgende:

[ code verwijderd ]

[ code verwijderd ]

Even mijn codes toegevoegd :@
1
2
3
4
5
6
7
$ /usr/lib/virtualbox/VBoxManage list vms
"ZoneCD" {fc21749e-413d-4054-a498-2307ed8c785d}
"Android" {bd77113d-9194-4d8e-a6ee-fb301a2a9ee5}
$ sudo /usr/lib/virtualbox/VBoxManage list vms
$ sudo -u mijnusername /usr/lib/virtualbox/VBoxManage list vms
"ZoneCD" {fc21749e-413d-4054-a498-2307ed8c785d}
"Android" {bd77113d-9194-4d8e-a6ee-fb301a2a9ee5}

Het VBoxManage command hangt dus af van de user. Voer je de cron als root uit?
  dinsdag 8 mei 2012 @ 19:34:32 #111
45457 NightH4wk
Semper Fi!
pi_111301696
quote:
Dat doe ik toch goed?
Idd. Daarom te laat. :X
  dinsdag 8 mei 2012 @ 19:35:32 #112
44552 Black_Ninja
Ninja's bestaan!
pi_111301741
quote:
14s.gif
Op dinsdag 8 mei 2012 19:33 schreef PiRANiA het volgende:

[..]
[ code verwijderd ]

Het VBoxManage command hangt dus af van de user. Voer je de cron als root uit?
Je ziet mijn code, volgens mij roep ik het gewoon aan maar het vreemde is dat ik hem niet met sudo hoef te starten als ik het handmatig doe :?

Als ik hem als root wil starten, hoe moet ik het dan invoeren? :@
Domo Arigato!
  dinsdag 8 mei 2012 @ 19:35:46 #113
44552 Black_Ninja
Ninja's bestaan!
pi_111301765
quote:
0s.gif
Op dinsdag 8 mei 2012 19:34 schreef NightH4wk het volgende:

[..]

Idd. Daarom te laat. :X
Gelukkig :) Doe ik iedergeval iets goed :P
Domo Arigato!
  dinsdag 8 mei 2012 @ 19:52:04 #114
44552 Black_Ninja
Ninja's bestaan!
pi_111302669
quote:
14s.gif
Op dinsdag 8 mei 2012 19:33 schreef PiRANiA het volgende:

[..]
[ code verwijderd ]

Het VBoxManage command hangt dus af van de user. Voer je de cron als root uit?
In cron root werkt het ook niet ;(
Domo Arigato!
  dinsdag 8 mei 2012 @ 20:50:01 #115
187069 slacker_nl
Sicko pur sang
pi_111306092
su - $user -c "/path/to/cmd" of is het -e?!
In theory there is no difference between theory and practice. In practice there is.
  dinsdag 8 mei 2012 @ 21:15:33 #116
44552 Black_Ninja
Ninja's bestaan!
pi_111307681
*O* *O* *O* *O* *O* *O* *O* *O* *O* *O*
Ik heb de Virtualbox werkende :D

Om een of andere reden doet hij het niet met het @reboot commando maar dan kan ik omheen werken omdat ik hem op vaste tijdstippen kan herstarten :)

Nu zit ik alleen nog met probleem 2. De .sh scripts op de virtualbox -O-

Het script dat ik start met
1~/run_replication.sh
werkt prima

Het script dat ik start met
1./run_server.sh
werkt dus niet ;(

Hoe moet ik het ./ gedeelte in een cronjob zetten? :@
Domo Arigato!
  dinsdag 8 mei 2012 @ 21:41:01 #117
187069 slacker_nl
Sicko pur sang
pi_111309074
Volledige path gebruiken..
In theory there is no difference between theory and practice. In practice there is.
  dinsdag 8 mei 2012 @ 21:53:39 #118
44552 Black_Ninja
Ninja's bestaan!
pi_111309816
quote:
0s.gif
Op dinsdag 8 mei 2012 21:41 schreef slacker_nl het volgende:
Volledige path gebruiken..
helpt niet ;(
Domo Arigato!
  dinsdag 8 mei 2012 @ 21:58:26 #119
187069 slacker_nl
Sicko pur sang
pi_111310070
Dan heb ik een pro-tip. set -x gebruiken en dan 2>> /tmp/logfile redirecten :)

Dan krijg je debug info in een log, kek :)
In theory there is no difference between theory and practice. In practice there is.
  dinsdag 8 mei 2012 @ 22:30:07 #120
44552 Black_Ninja
Ninja's bestaan!
pi_111312105
quote:
0s.gif
Op dinsdag 8 mei 2012 21:58 schreef slacker_nl het volgende:
Dan heb ik een pro-tip. set -x gebruiken en dan 2>> /tmp/logfile redirecten :)

Dan krijg je debug info in een log, kek :)
log blijft leeg maar wordt wel aangemaakt :?
Domo Arigato!
  dinsdag 8 mei 2012 @ 22:31:46 #121
187069 slacker_nl
Sicko pur sang
pi_111312202
uhh &2>> logfile
In theory there is no difference between theory and practice. In practice there is.
  dinsdag 8 mei 2012 @ 23:11:00 #122
44552 Black_Ninja
Ninja's bestaan!
pi_111314494
Echt, wtf!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command
*/1 * * * * danny -u /home/musicbrainz/run_server.sh
10 * * * * /home/musicbrainz/run_replication.sh >> /tmp/replication.log 2>&1
@reboot /home/musicbrainz/run_replication.sh
46 * * * * /home/musicbrainz/run_server.sh >> /home/musicbrainz/startserver.log

run_replication.sh werkt prima, runs_server.sh pakt ie niet.

het enige verschil van wat ik weet is dat run_replication.sh start je met ~/ er voor en run_server.sh met ./

begin echt gek te worden :(
Domo Arigato!
  dinsdag 8 mei 2012 @ 23:16:42 #123
187069 slacker_nl
Sicko pur sang
pi_111314784
~/ werkt niet, dan moet je $HOME gebruiken. Volgens mij staat dat ook ergens in deze draad :) Jep: you@shellscripts$ enter() { echo "Shell scripting ftw!, deel 1
In theory there is no difference between theory and practice. In practice there is.
  dinsdag 8 mei 2012 @ 23:21:09 #124
44552 Black_Ninja
Ninja's bestaan!
pi_111315019
quote:
0s.gif
Op dinsdag 8 mei 2012 23:16 schreef slacker_nl het volgende:
~/ werkt niet, dan moet je $HOME gebruiken. Volgens mij staat dat ook ergens in deze draad :) Jep: you@shellscripts$ enter() { echo "Shell scripting ftw!, deel 1
run_replication werkt dus, en die moest met ~/ worden gestart

het is run_server.sh dat niet werkt en die werd gestart met ./

:? :? :? :? :? :? :? :? :?
Domo Arigato!
  dinsdag 8 mei 2012 @ 23:23:27 #125
187069 slacker_nl
Sicko pur sang
pi_111315129
DUDE STOP FUCKING WITH RELATIVES PATHS!!!!! ABSOLUTE PATHS PLEASE!!!!!!
In theory there is no difference between theory and practice. In practice there is.
  dinsdag 8 mei 2012 @ 23:25:55 #126
44552 Black_Ninja
Ninja's bestaan!
pi_111315230
quote:
0s.gif
Op dinsdag 8 mei 2012 23:23 schreef slacker_nl het volgende:
DUDE STOP FUCKING WITH RELATIVES PATHS!!!!! ABSOLUTE PATHS PLEASE!!!!!!
Die werken dus ook niet! :P

Ik heb als eerste
1/home/musicbrainz/run_server.sh
geprobeerd maar dat deed niks, als ik die handmatig intik werkt het prima.
Domo Arigato!
  dinsdag 8 mei 2012 @ 23:27:20 #127
187069 slacker_nl
Sicko pur sang
pi_111315292
Dan moet je chmodden en/of je #! aanpassen en/of je PATH variabele in je script goed zetten. Niet werken is niet zo een duidelijke omschrijving ;)
In theory there is no difference between theory and practice. In practice there is.
  dinsdag 8 mei 2012 @ 23:29:15 #128
45457 NightH4wk
Semper Fi!
pi_111315380
Weet je zeker dat het probleem niet in in .sh files zit? Environment variabelen worden overschreven. Dus vervang run_server.sh door run_replication.sh en kijk of de cron hem iig wel aanroept.
  dinsdag 8 mei 2012 @ 23:31:04 #129
44552 Black_Ninja
Ninja's bestaan!
pi_111315461
quote:
0s.gif
Op dinsdag 8 mei 2012 23:27 schreef slacker_nl het volgende:
Dan moet je chmodden en/of je #! aanpassen en/of je PATH variabele in je script goed zetten. Niet werken is niet zo een duidelijke omschrijving ;)
Als ik meer info had zou ik het graag geven :@

quote:
0s.gif
Op dinsdag 8 mei 2012 23:29 schreef NightH4wk het volgende:
Weet je zeker dat het probleem niet in in .sh files zit? Environment variabelen worden overschreven. Dus vervang run_server.sh door run_replication.sh en kijk of de cron hem iig wel aanroept.
run_replication.sh staat in dezelfde map als run_server.sh dat is dus allemaal zo vreemd :@
Domo Arigato!
  dinsdag 8 mei 2012 @ 23:38:05 #130
45457 NightH4wk
Semper Fi!
pi_111315796
quote:
run_replication.sh staat in dezelfde map als run_server.sh dat is dus allemaal zo vreemd
Maar wordt het script dus aangeroepen? Indien dat het geval is dat zit het probleem in de .sh.
  dinsdag 8 mei 2012 @ 23:40:09 #131
44552 Black_Ninja
Ninja's bestaan!
pi_111315878
quote:
0s.gif
Op dinsdag 8 mei 2012 23:38 schreef NightH4wk het volgende:

[..]

Maar wordt het script dus aangeroepen? Indien dat het geval is dat zit het probleem in de .sh.
net het even omgedraaid en ook dan wordt replication wel aangeroepen en server niet.

als ik mijn eigen scriptje gebruik dan kan ik hem ook handmatig wel en niet via cronjob aanroepen. Moet ik heb dan speciale chmod rechten meegeven of iets dergelijks?
Domo Arigato!
  woensdag 9 mei 2012 @ 09:50:37 #132
44552 Black_Ninja
Ninja's bestaan!
pi_111324142
Inmiddels weer een stapje verder. Als ik run_server.sh opstart zie ik het een en ander gebeuren (hij geeft weer welke communicatie er plaats vind). Wanneer ik dan het ssh venster sluit sluit ook direct het script.

Ik zal hem dus als een soort daemon process moeten draaien denk ik, kan iemand me op weg helpen hoe ik dat moet doen? :@
Domo Arigato!
  woensdag 9 mei 2012 @ 10:00:22 #133
134103 gebrokenglas
Half human, half coffee
pi_111324383
quote:
0s.gif
Op woensdag 9 mei 2012 09:50 schreef Black_Ninja het volgende:
Inmiddels weer een stapje verder. Als ik run_server.sh opstart zie ik het een en ander gebeuren (hij geeft weer welke communicatie er plaats vind). Wanneer ik dan het ssh venster sluit sluit ook direct het script.

Ik zal hem dus als een soort daemon process moeten draaien denk ik, kan iemand me op weg helpen hoe ik dat moet doen? :@
Als je een script autonoom wilt draaien, kan dat op 2 manieren


methode 1: nohup

Zoiets:
1
2
3
4
5
cd /tmp/
[ -f nohup.out ] && rm nohup.out
[ -f run_server.sh.log ] && rm run_server.sh.log
nohup /home/musicbrainz/run_server.sh &
mv nohup.out run_server.sh.log
Ouput komt dan in een /tmp/run_server.sh.log file terecht, maar je scherm kun je rustig sluiten.


methode 2: at
at is een mechanisme a la cron, om dingen op een later tijdstip uit te voeren.
Bijvoorbeeld het starten van een scriptje om 12 uur 's middags:
1
2
3
at 12pm
/home/bla/scriptje.sh
^d
Die ctrl-d is om aan at aan te geven dat je klaar bent met het opvoeren van de commando's.

In jouw geval

1
2
3
at now
/home/musicbrainz/run_server.sh
^d


[ Bericht 0% gewijzigd door gebrokenglas op 10-05-2012 08:17:24 ]
How can I make this topic about me?
  woensdag 9 mei 2012 @ 21:28:59 #134
44552 Black_Ninja
Ninja's bestaan!
pi_111353274
quote:
0s.gif
Op woensdag 9 mei 2012 10:00 schreef gebrokenglas het volgende:

[..]

Als je een script autonoom wilt draaien, kan dat op 2 manieren

methode 1: nohup

Zoiets:
[ code verwijderd ]

Ouput komt dan in een /tmp/run_server.sh.log file terecht, maar je scherm kun je rustig sluiten.

methode 2: at
at is een mechanisme a la cron, om dingen op een later tijdstip uit te voeren.
Bijvoorbeeld het starten van een scriptje om 12 uur 's middags:
[ code verwijderd ]

Die ctrl-d is om aan at aan te geven dat je klaar bent met het opvoeren van de commando's.

In jouw geval
[ code verwijderd ]

_O_ _O_ _O_ _O_ _O_ _O_

Je bent geweldig!!! HET WERKT!!! *O* *O* *O* *O* *O*

_O_ _O_ _O_ _O_ _O_ _O_
Domo Arigato!
pi_111893073
scr0xaxis=$(xrandr --current | grep '*+' | uniq | awk '{print $1}' | cut -d 'x' -f1)
scr0yaxis=$(xrandr --current | grep '*+' | uniq | awk '{print $1}' | cut -d 'x' -f2)
scr1xaxis=$(xrandr --current | grep '* ' | uniq | awk '{print $1}' | cut -d 'x' -f1)
scr1yaxis=$(xrandr --current | grep '* ' | uniq | awk '{print $1}' | cut -d 'x' -f2)

$((element00=scr0xaxis/(scr0xaxis + scr1xaxis)))
$((element11=scr0yaxis/scr1yaxis))

echo -e $element00
echo -e $element11

Ik krijg steeds
0
0

terwijl het
0.5
0.78125

zou moeten zijn
(scr0xaxis = scr1xaxis = 1280, scr0yaxis = 800, scr1yaxis = 1024)
  dinsdag 22 mei 2012 @ 20:36:55 #136
187069 slacker_nl
Sicko pur sang
pi_111893577
Post eens de output van xrandr --current

Never mind, zie het al

printf "%.2f\n" $ding :)

En anders moet je met bc werken:

echo "scale = 4 ; $x + $y" | bc

ben je er ook.
In theory there is no difference between theory and practice. In practice there is.
pi_111896393
Oke maar ik gebruik de variabele $element00 en $element11 eigenlijk niet om te echo-en ik wou het puur even printen om te debuggen... maar hoe kan ik het gebruiken in een commando?

Dit is het geheel...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function mapstylus()
{
    scr0xaxis=$(xrandr --current | grep '*+' | uniq | awk '{print $1}' | cut -d 'x' -f1)
    scr0yaxis=$(xrandr --current | grep '*+' | uniq | awk '{print $1}' | cut -d 'x' -f2)
    scr1xaxis=$(xrandr --current | grep '* ' | uniq | awk '{print $1}' | cut -d 'x' -f1)
    scr1yaxis=$(xrandr --current | grep '* ' | uniq | awk '{print $1}' | cut -d 'x' -f2)

    $((element00=scr0xaxis/(scr0xaxis + scr1xaxis)))
    $((element11=scr0yaxis/scr1yaxis))

    echo -e "scale = 5; $element00" | bc
    echo -e "scale = 5; $element11" | bc

    #xinput set-prop "Serial Wacom Tablet stylus" --type=float "Coordinate Transformation Matrix" $element00 0 0 0 $element11 0 0 0 1
}

wil het gebruiken om de xinput transformatie matrix aan te passen van mijn stylus.
  dinsdag 22 mei 2012 @ 21:24:06 #138
187069 slacker_nl
Sicko pur sang
pi_111897769
nee, drop ff die output (heb hier geen linux bak dus enzo..)

btw, beetje optimalisatie:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function my_function() {
local output="$(xrandr --current)"

local w=$(echo -e "$output" | grep shizzle1)
local x=$(echo -e "$output" | grep shizzle2) 
local y=$(echo -e "$output" | grep shizzle3)
local z =$(echo -e "$output" | grep shizzle4)

local iets=$(echo "scale = 4; $x + $w | bc)
local anders=$(echo "scale 4; $y + $z" | bc )

xinput set-prop "Serial Wacom Tablet stylus" --type=float "Coordinate Transformation Matrix" $iets 0 0 0 $anders 0 0 0 1

}


[ Bericht 0% gewijzigd door slacker_nl op 22-05-2012 21:30:43 ]
In theory there is no difference between theory and practice. In practice there is.
pi_120237695
Is er hier nog leven? Ik kan wel wat hulp gebruiken hehe.
Aim at perfection in everything, though in most things it is unattainable. However, they who aim at it, and persevere, will come much nearer to it than those whose laziness and despondency make them give it up as unattainable.
  woensdag 12 december 2012 @ 18:33:52 #140
187069 slacker_nl
Sicko pur sang
pi_120237863
quote:
0s.gif
Op woensdag 12 december 2012 18:28 schreef relativity het volgende:
Is er hier nog leven? Ik kan wel wat hulp gebruiken hehe.
Stel je vraag
In theory there is no difference between theory and practice. In practice there is.
pi_120238266
Hallo :W.
జ్ఞ‌ా
  woensdag 12 december 2012 @ 20:56:00 #142
65490 whoops
Home is where the heart is...
pi_120243993
    ​                  
In the beginning, the universe was created. This made a lot of people very angry and has been widely regarded as a bad move.
pi_120262677
pi_120277024
Oke bedankt! :-)

Allereerst: Ik ben vrij basaal met het bash programmeren, maar vind het wel degelijk interessant!
Ik ben bezig geweest met een bash scriptje om mijn mp3 collectie wat op te schonen van vervelende tags e.d.

Echter moet ik mijn script meerdere malen uitvoeren om alles toe te passen op de bestanden.

Het script is als volgt:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/bin/bash

IFS=$'\n'           #changing IFS to newline means spaces
                    #are ignored during word-breaking

DIR=${1:-/home/mainstream/Music/rename}
TYPE='.mp3'
shopt -s extglob    #enable extended globbing

for file in $DIR/*$TYPE ; do

     filepath=${file%/*}
     newname=${file##*/}
     mp3=${file##*/}

     #remove junk characters from filename
     newname=${newname//+([,\'])/}

     regex='_\(final\)|\ \(CDQ\)|\ \(NoShout\)|\ \(CDQ \& Final\)|\ \(Dirty\)|\ \(Mastered\)|\ \(full\)'
     newname=${newname//+($regex)/}

     #replace delimiter
     regex='\ \-\ |\_\-\_|\-\-'
     newname=${newname//+($regex)/-}

     regex='_featuring_\|_feat_\|_f._\|_ft_|_feat._'
     newname=${newname//+($regex)/_ft._}

     regex='\(feat._|\(feat_'
     newname=${newname//+($regex)/\(ft._}

     #replace all instances
     newname=${newname//+(_and_)/_&_}

     #change spaces (and tabs) to underscores in filename
     #extglob reduces multiple spaces to single underscore
     newname=${newname//+([[:space:]])/_}

     #lowercase filename
     newname=${newname,,}

     #remove all initial "digit+[-_]" combinations
     #again extglob handles variable numbers of digits
     newname=${newname#+([0-9])[_-]}

     #remove any final group "-zzzz" strings
     #similar to the last operation
     #assumes the file ends in ".mp3", however
     regex='zzzz|mst|alki|you|wus|htf|whoa'
     newname=${newname/-+($regex).mp3/.mp3}

     #remove any "-(nnn_bpm)" strings
     #remember, spaces have been changed to underscores already
     newname=${newname/-(+([0-9])_bpm)}

     if [[ $mp3 != $newname ]]
     then
          echo \.-------------------------------------------------------------\.
          echo "Old: \"$mp3\""
          echo "New: \"$newname\""
          mv $DIR/$mp3 $DIR/$newname
          echo \'-------------------------------------------------------------\'
     fi

done
exit 0

Tweede stap:
Nu ben ik ook bezig om er iets dergelijks in te bouwen zoals dit:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/bin/bash
DIR=${1:-/home/mainstream/Music/rename}

read -e -p "Enter Year: " -i "2012" YEAR
echo "Select a Genre"
select GENRE in "Classical" "Dubstep" "Hip-Hop" "Skip"; do
    case $GENRE in
        Classical ) echo $GENRE; break;;
        Dubstep ) echo $GENRE; break;;
        Hip-Hop ) echo $GENRE; break;;
        Rap ) echo $GENRE; break;;
        Skip ) exit;;

    esac
done

id3v2 -D $DIR/$DIR &> /dev/null
id3v2 -g $GENRE -y $YEAR $DIR/$DIR &> /dev/nul
En misschien automatisch ook de artist+song tags (ID3V1 & V2) toewijzen.

Hoe krijg ik dit in een script verwerkt? :P

Bij voorbaat dank O-)
Aim at perfection in everything, though in most things it is unattainable. However, they who aim at it, and persevere, will come much nearer to it than those whose laziness and despondency make them give it up as unattainable.
pi_120279883
quote:
0s.gif
Op donderdag 13 december 2012 18:55 schreef relativity het volgende:
Oke bedankt! :-)

Allereerst: Ik ben vrij basaal met het bash programmeren, maar vind het wel degelijk interessant!
Ik ben bezig geweest met een bash scriptje om mijn mp3 collectie wat op te schonen van vervelende tags e.d.

Echter moet ik mijn script meerdere malen uitvoeren om alles toe te passen op de bestanden.

Het script is als volgt:
[ code verwijderd ]

Tweede stap:
Nu ben ik ook bezig om er iets dergelijks in te bouwen zoals dit:
[ code verwijderd ]

En misschien automatisch ook de artist+song tags (ID3V1 & V2) toewijzen.

Hoe krijg ik dit in een script verwerkt? :P

Bij voorbaat dank O-)
Ik zou zelf met find werken, ik neem even aan dat je mp3's in subdirs hebt staan. Als ik dit script loslaat op m'n eigen music dir doet het namelijk helemaal niks.

1for file in $(find $DIR -name \*$TYPE); do

Verder kan je met basename en dirname werken (dat $filepath gedeelte)

Een andere tip is om dat hele rename gebeuren in een functie te frotten,

je kan dan met een subset dingen testen

1
2
3
for file in $(find $DIR -name \*$TYPE | head -10); do
   my_rename_func "$file"
done

Je zou daarna de mp3tags kunnen aanpassen in dezelfde loop, de nieuwe filename return je dan in je my_rename_func

1
2
3
4
5
6
7
8
9
function my_rename_func() {
    # while bunch of code
    echo $new_name
}

for file in $(find $DIR -name \*$TYPE | head -10); do
   new_file=$(my_rename_func "$file")
   tag_the_stuff $new_file
done

En de functie tag the stuff doe je al het spul wat je leuk om te mee te taggen.
In theory there is no difference between theory and practice. In practice there is.
pi_120280778
quote:
Ik zou zelf met find werken, ik neem even aan dat je mp3's in subdirs hebt staan. Als ik dit script loslaat op m'n eigen music dir doet het namelijk helemaal niks.
Nee alles staat gewoon in een dir; lekker makkelijk.

1
2
3
<?php
Verder kan je met basename en dirname werken 
(dat $filepath gedeelte)
?>
Oke :)

quote:
Een andere tip is om dat hele rename gebeuren in een functie te frotten,
Oke, nog nooit gedaan, maar ga ik eens proberen :D

quote:
je kan dan met een subset dingen testen
[ code verwijderd ]
Ga ik proberen :D

quote:
Je zou daarna de mp3tags kunnen aanpassen in dezelfde loop, de nieuwe filename return je dan in je my_rename_func
[ code verwijderd ]
Hier raak je mij een beetje kwijt haha!
Bedoel je tag_the_stuff als functie aanmaken en dan callen in die loop?

quote:
En de functie tag the stuff doe je al het spul wat je leuk om te mee te taggen.
Krijg hoofdpijn van die loops lol.

Maar goed. Bedankt voor de constructieve feedback. Kan ik morgen even verder gaan :D
Aim at perfection in everything, though in most things it is unattainable. However, they who aim at it, and persevere, will come much nearer to it than those whose laziness and despondency make them give it up as unattainable.
pi_120280864
Het is een beetje lastig op Xubuntu...

In gedit zag je tenminste gekleerde tekst. Nou heb ik lap zwarte tekst.
Enige tips hiervoor? Want dit werkt niet echt fijn.

Zoiets bedoel je? (even snel geknipt/geplakt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#!/bin/bash
set -vx

IFS=$'\n'           #changing IFS to newline means spaces
                    #are ignored during word-breaking

DIR=${1:-/home/mainstream/Music/rename}
TYPE='.mp3'
shopt -s extglob    #enable extended globbing

function my_rename_func() {

     #break input filename into path and name
     #so that names with paths included are correctly handled
     filepath=${file%/*}
     newname=${file##*/}
     mp3=${file##*/}

     #remove junk characters from filename
     newname=${newname//+([,\'])/}

     regex='_\(final\)|\ \(CDQ\)|\ \(NoShout\)|\ \(CDQ \& Final\)|\ \(Dirty\)|\ \(Mastered\)|\ \(full\)'
     newname=${newname//+($regex)/}

     #replace delimiter
     regex='\ \-\ |\_\-\_|\-\-'
     newname=${newname//+($regex)/-}

     regex='_featuring_\|_feat_\|_f._\|_ft_|_feat._'
     newname=${newname//+($regex)/_ft._}

     regex='\(feat._|\(feat_'
     newname=${newname//+($regex)/\(ft._}

     #replace all instances
     newname=${newname//+(_and_)/_&_}

     #change spaces (and tabs) to underscores in filename
     #extglob reduces multiple spaces to single underscore
     newname=${newname//+([[:space:]])/_}

     #lowercase filename
     newname=${newname,,}

     #remove all initial "digit+[-_]" combinations
     #again extglob handles variable numbers of digits
     newname=${newname#+([0-9])[_-]}

     #remove any final "-zzzz" strings
     #similar to the last operation
     #assumes the file ends in ".mp3", however
     regex='zzzz|mst|alki|you|wus|htf|whoa'
     newname=${newname/-+($regex).mp3/.mp3}

     #remove any "-(nnn_bpm)" strings
     #remember, spaces have been changed to underscores already
     newname=${newname/-(+([0-9])_bpm)}

     #you can continue adding as many changes as you want here.

     #call mv to change the filename.
     #I used -iv to make it interactive and verbose, but that's up to you.
     if [[ $mp3 != $newname ]]
     then
          echo \.-------------------------------------------------------------\.
          echo "Old: \"$mp3\""
          echo "New: \"$newname\""
          #mv $DIR/$mp3 $DIR/$newname
          echo \'-------------------------------------------------------------\'
     fi
}

tag_the_stuff() {

read -e -p "Enter Year: " -i "2012" YEAR
echo "Select a Genre"
select GENRE in "Classical" "Dubstep" "Hip-Hop" "Skip"; do
    case $GENRE in
        Classical ) echo $GENRE; break;;
        Dubstep ) echo $GENRE; break;;
        Hip-Hop ) echo $GENRE; break;;
        Rap ) echo $GENRE; break;;
        Skip ) exit;;

    esac
done

id3v2 -D $DIR &> /dev/null
id3v2 -g $GENRE -y $YEAR $DIR &> /dev/nul
}

for file in $(find $DIR -name \*$TYPE | head -10); do
   new_file=$(my_rename_func "$file")
   tag_the_stuff $new_file
done

exit 0


[ Bericht 47% gewijzigd door relativity op 13-12-2012 20:36:18 ]
Aim at perfection in everything, though in most things it is unattainable. However, they who aim at it, and persevere, will come much nearer to it than those whose laziness and despondency make them give it up as unattainable.
  donderdag 13 december 2012 @ 20:49:00 #148
29444 RemcoDelft
4 8 15 16 23 42
pi_120282169
quote:
0s.gif
Op donderdag 13 december 2012 20:21 schreef relativity het volgende:
Het is een beetje lastig op Xubuntu...

In gedit zag je tenminste gekleerde tekst. Nou heb ik lap zwarte tekst.
Enige tips hiervoor? Want dit werkt niet echt fijn.
vi/vim/elvis o.i.d. gebruiken? 't Is even wennen, maar daarna wil je niets anders meer!
censuur :O
pi_120282281
quote:
0s.gif
Op donderdag 13 december 2012 20:49 schreef RemcoDelft het volgende:

[..]

vi/vim/elvis o.i.d. gebruiken? 't Is even wennen, maar daarna wil je niets anders meer!
Dat is allemaal commandline hè? Hoewel ik daar een groot voorstander van ben, vind ik een GUI toch wat fijner werken met het schrijven van scripts :P

Ahh vim is grapical :D

[ Bericht 11% gewijzigd door relativity op 13-12-2012 21:10:20 ]
Aim at perfection in everything, though in most things it is unattainable. However, they who aim at it, and persevere, will come much nearer to it than those whose laziness and despondency make them give it up as unattainable.
  donderdag 13 december 2012 @ 21:11:37 #150
29444 RemcoDelft
4 8 15 16 23 42
pi_120283218
Wat moet je met een GUI als je een script typt? Vi is ontworpen om snel mee te werken, leer het, en je bent sneller dan steeds je muis te pakken.

Klein voorbeeld, regel kopieren: yyp, dat kost iets van 0.3 seconden.
censuur :O
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')

Het lijkt erop dat je onze advertenties blokkeert

Dat begrijpen we, maar is wel erg jammer. Je kunt FOK! namelijk wel gratis LEZEN, maar we kunnen FOK! niet gratis MAKEN. De inkomsten van de advertenties zorgen ervoor dat we de kosten van de site kunnen dragen zodat je ook morgen FOK! nog kunt bezoeken.

Zou je willen overwegen om voor FOK! een uitzondering te maken in je adblocker (of andere middelen die onze ads blokkeren)? Je krijgt deze melding dan nooit meer te zien.

Ja, ik wil fok.nl whitelisten, laat me zien hoe

Ik neem liever een premium account zodat ik geen advertenties hoef te zien (je moet eerst inloggen)
Ja, breng me naar de shop