Pagina 1 di 1
Versione kernel letta da bzImage o vmlinuz
Inviato: gio 26 mar 2009, 20:19
da Mario Vanoni
http://lkml.indiana.edu/hypermail/linux ... 01611.html
strings /boot/bzImage | grep -P -o \\d\\.\\d\\.\\d{2}
2.6.28
senza l'opzione -o di grep
strings /boot/bzImage | grep -P \\d\\.\\d\\.\\d{2}
2.6.28.9 (root@va2) #2 SMP Thu Mar 26 14:45:04 CET 2009
Re: Versione kernel letta da bzImage o vmlinuz
Inviato: gio 26 mar 2009, 22:16
da targzeta
Interessante, io avrei usato questa:
Codice: Seleziona tutto
strings /boot/vmlinuz | grep -P -o '^\d\.\d\.\d{1,2}(\.\d{1,2})?'
Così abbiamo anche la release:
Codice: Seleziona tutto
$> strings /boot/vmlinuz | grep -P -o '^\d\.\d\.\d{1,2}(\.\d{1,2})?'
2.6.23.17
$> strings /boot/bzImage | grep -P -o '^\d\.\d\.\d{1,2}(\.\d{1,2})?'
2.6.29
Spina
Re: Versione kernel letta da bzImage o vmlinuz
Inviato: ven 27 mar 2009, 14:58
da Mario Vanoni
spina ha scritto:Interessante, io avrei usato questa:
Codice: Seleziona tutto
strings /boot/vmlinuz | grep -P -o '^\d\.\d\.\d{1,2}(\.\d{1,2})?'
Così abbiamo anche la release:
Codice: Seleziona tutto
$> strings /boot/vmlinuz | grep -P -o '^\d\.\d\.\d{1,2}(\.\d{1,2})?'
2.6.23.17
$> strings /boot/bzImage | grep -P -o '^\d\.\d\.\d{1,2}(\.\d{1,2})?'
2.6.29
Spina
Bravo Emanuele, partendo dalla tua versione
strings /boot/vmlinuz | grep -o '^[0-9]\.[0-9]\{1,\}\.[0-9]\{1,\}\.\{0,\}\.[0-9]\{1,\}\-\{0,\}[A-Za-z0-9.-]\{0,\}'
2.6.27.7-smp
strings /boot/bzImage | grep -o '^[0-9]\.[0-9]\{1,\}\.[0-9]\{1,\}\.\{0,\}\.[0-9]\{1,\}\-\{0,\}[A-Za-z0-9.-]\{0,\}'
2.6.28.9
forse legge anche versioni non-standard, senza la perl regular extension.
Guardando counter.li.org ci sono altre extensions (2.2.16C37_III),
coprire anche quelle diventa difficile, il genio umano non ha limiti.
Re: Versione kernel letta da bzImage o vmlinuz
Inviato: ven 27 mar 2009, 15:21
da targzeta
Allora Mario puoi provare questa:
Codice: Seleziona tutto
strings bzImage | grep -P -o '^\d\.\d\.\d{1,2}[[:^space:]]*'
Spina
Re: Versione kernel letta da bzImage o vmlinuz
Inviato: ven 27 mar 2009, 15:34
da Mario Vanoni
spina ha scritto:Allora Mario puoi provare questa:
Codice: Seleziona tutto
strings bzImage | grep -P -o '^\d\.\d\.\d{1,2}[[:^space:]]*'
Spina
Funziona perfettamente Emanuele,
ma non e` portabile su grep non GNU o senza opzione -P (perl).
Re: Versione kernel letta da bzImage o vmlinuz
Inviato: ven 27 mar 2009, 15:48
da targzeta
Non so cosa non accettino i grep non GNU, ma per evitare l'opzione '-P' basta:
Codice: Seleziona tutto
strings vmlinuz | grep -o '^[[:digit:]]\.[[:digit:]]\.[[:digit:]]\{1,2\}[^[:space:]]*'
Spina
Re: Versione kernel letta da bzImage o vmlinuz
Inviato: ven 27 mar 2009, 16:29
da Mario Vanoni
spina ha scritto:Non so cosa non accettino i grep non GNU, ma per evitare l'opzione '-P' basta:
Codice: Seleziona tutto
strings vmlinuz | grep -o '^[[:digit:]]\.[[:digit:]]\.[[:digit:]]\{1,2\}[^[:space:]]*'
Spina
Spiacente, ma non e` portabile in mondo UNIX "anziano".
Rileggendo la man page di grep(1), AT&T SVR3.2,
dice che le RE basano sulla sintassi di ed(1),
che non conosce i costrutti [[:xyz:]], aggiunti anni dopo.
La mia versione piu` lunga e` portabile al 100%.
Grazie della discussione.
Re: Versione kernel letta da bzImage o vmlinuz
Inviato: ven 27 mar 2009, 18:27
da targzeta
Mario Vanoni ha scritto:...
La mia versione piu` lunga e` portabile al 100%.
...
Ma non è equivalente, poiché [A-Za-z0-9.-] != [^[:space:]]
Spina
Re: Versione kernel letta da bzImage o vmlinuz
Inviato: ven 27 mar 2009, 18:44
da Mario Vanoni
spina ha scritto:Mario Vanoni ha scritto:...
La mia versione piu` lunga e` portabile al 100%.
...
Ma non è equivalente, poiché [A-Za-z0-9.-] != [^[:space:]]
Spina
No Emanuele,
i vecchi UNIX non conoscono [:space:],
agevolazioni introdotte da RMS con GNU,
in parte poi riprese da POSIX, ma non universale!
Re: Versione kernel letta da bzImage o vmlinuz
Inviato: ven 27 mar 2009, 20:45
da targzeta
Mario Vanoni ha scritto:...
No Emanuele,
i vecchi UNIX non conoscono [:space:],
...
Si si, avevo capito, dicevo solo che anche se la tua regex è portabile a vecchi sistemi, non è comunque equivalente a quella che ho scritto io, e quindi potrebbe non funzionare, pensa ad esempio se ci fosse un '_', tu non l'hai considerato, ma nella classe "^[:space:]" c'è anche quello.
Spina
Re: Versione kernel letta da bzImage o vmlinuz
Inviato: ven 27 mar 2009, 21:08
da Mario Vanoni
spina ha scritto:
Si si, avevo capito, dicevo solo che anche se la tua regex è portabile a vecchi sistemi, non è comunque equivalente a quella che ho scritto io, e quindi potrebbe non funzionare, pensa ad esempio se ci fosse un '_', tu non l'hai considerato, ma nella classe "^[:space:]" c'è anche quello.
Hai ragione Emanuele,
bisogna aggiungere a [A-Za-z0-9.-]
ogni segno che i furbi si inventano come kernel-name,
magari anche "!@#$%^&*()_+"
ma sta sicuro che uno mettera` anche spazi!
Per esempio
2.6.33.44-Emanuele Tomasi Carpignano Sal. (LE)
No chance!