Forums

Skip to content

Advanced search
  • Quick links
    • Unanswered topics
    • Active topics
    • Search
  • FAQ
  • Login
  • Register
  • Board index International Gentoo Users Deutsches Forum (German)
  • Search

Versionsnummer auslesen mit sed - Hilfe!!

Support-Forum
Diskussionen rund um Installation, Betrieb und Anpassungen von Gentoo und dessen Paketen sowie dabei auftretenden (technischen) Problemen.
Deutsches Portal: www.gentoo.de
Post Reply
  • Print view
Advanced search
24 posts • Page 1 of 1
Author
Message
HymiR
n00b
n00b
User avatar
Posts: 32
Joined: Sun Sep 10, 2006 10:56 am
Location: Im Sumpf

Versionsnummer auslesen mit sed - Hilfe!!

  • Quote

Post by HymiR » Sun Apr 29, 2007 1:50 pm

Servus, allerseits.

Ich möchte mit sed folgendes machen:
ich möchte den Versionsstring des NEUESTEN INSTALLIERTEN (nicht den des aktuell LAUFENDEN, also uname -r) Kernels auslesen.

Ich dachte, anhand des Links /usr/src/linux könnte man diesen String auslesen,was natürlich nur funktioniert, wenn
das USE-Flag sys-kernel/gentoo-sources symlink gesetzt ist (also nicht sonderlich verlässlich).

Ich habe es folgendermaßen versucht, wass aber nicht ganz hinhaut:

Code: Select all

ls -n /usr/src/linux | sed -e 's/.*\(2\.[46]\.[1-9][1-9]\?-.*-r[1-9]\)/$NN=\1/'
Wo liegt da der Fehler??? :(

Was ich bezwecken will, ist das Einlesen des Versions-Strings im Format 2.6.19-gentoo-r6 in eine Variable.
Kann mir hier wer helfen, ich komm da einfach nicht weiter:(
Gibts vielleicht eine elegantere bzw vorallem verlässlichere Möglichkeit den Versions-String des Kernels auszulesen?

Und nochmals: ich möchte den Versionsstring des NEUESTEN INSTALLIERTEN Kernels auslesen.

Besten Dank im Voraus für konstruktive Hilfe:)
"Ich will nie zum Wiedersprechen herausfordern; vielmehr: helft, mit mir das Problem zu gestalten!..."
(Aus "Kritik der höchsten Werte", Friedrich Wilhelm Nietzsche, 1844-1900)
Top
firefly
Watchman
Watchman
Posts: 5385
Joined: Thu Oct 31, 2002 8:24 pm

  • Quote

Post by firefly » Sun Apr 29, 2007 2:03 pm

hmm bei mir funktioniert es:

Code: Select all

-> ls -n /usr/src/linux
lrwxrwxrwx 1 0 0 24 17. Jan 15:34 /usr/src/linux -> linux-2.6.19-suspend2-r1

Code: Select all

-> ls -n /usr/src/linux | sed -e 's/.*\(2\.[46]\.[1-9][1-9]\?-.*-r[1-9]\)/$NN=\1/'
$NN=2.6.19-suspend2-r1
Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn.
Top
smg
Veteran
Veteran
User avatar
Posts: 1402
Joined: Fri Aug 13, 2004 8:00 pm
Location: /home/stephan

  • Quote

Post by smg » Sun Apr 29, 2007 2:07 pm

Code: Select all

stephan@unimatrix ~ $ myvar=$(ls -n /usr/src/linux | sed 's/^.*linux-\(.*\)\//\1/')
stephan@unimatrix ~ $ echo $myvar
2.6.19-gentoo-r5
GnuPG-Key-ID: 0xF8C275D4
Fingerprint: 5B6F 134A 189B A24D 342B 0961 8D4B 0230 F8C2 75D4

Code: Select all

perl -WTe '($")=$/;print qq(@{[reverse('0'..'100')]}$/BOOM!$/);'
Top
think4urs11
Bodhisattva
Bodhisattva
User avatar
Posts: 6659
Joined: Wed Jun 25, 2003 9:51 pm
Location: above the cloud

  • Quote

Post by think4urs11 » Sun Apr 29, 2007 2:25 pm

Code: Select all

bla=$(ls -n /usr/src | cut -b43- | sed '$!d')
Nothing is secure / Security is always a trade-off with usability / Do not assume anything / Trust no-one, nothing / Paranoia is your friend / Think for yourself
Top
smg
Veteran
Veteran
User avatar
Posts: 1402
Joined: Fri Aug 13, 2004 8:00 pm
Location: /home/stephan

  • Quote

Post by smg » Sun Apr 29, 2007 2:32 pm

Think4UrS11 wrote:

Code: Select all

bla=$(ls -n /usr/src | cut -b43- | sed '$!d')
falsch, so zeigst du nur die zeile an die ganz "unten" steht :) außerdem cut'test du zu wenig zeichen dann hast du nen hässlichen output

-b47 wäre richtig, und dein sed macht eben nur die ausgabe des letzten records :) und darauf liegt nicht immer der link

p.s.: meine lösung geht ohne probleme, s.o.
Last edited by smg on Sun Apr 29, 2007 2:37 pm, edited 1 time in total.
GnuPG-Key-ID: 0xF8C275D4
Fingerprint: 5B6F 134A 189B A24D 342B 0961 8D4B 0230 F8C2 75D4

Code: Select all

perl -WTe '($")=$/;print qq(@{[reverse('0'..'100')]}$/BOOM!$/);'
Top
think4urs11
Bodhisattva
Bodhisattva
User avatar
Posts: 6659
Joined: Wed Jun 25, 2003 9:51 pm
Location: above the cloud

  • Quote

Post by think4urs11 » Sun Apr 29, 2007 2:36 pm

smg wrote:
Think4UrS11 wrote:

Code: Select all

bla=$(ls -n /usr/src | cut -b43- | sed '$!d')
falsch :)
Weil?
Der letzte installierte ist für mich der der als letztes via emerge gezogen wurde und wie der OP bereits sagte möchte er sich lieber nicht auf das USE-Flag verlassen.
Nothing is secure / Security is always a trade-off with usability / Do not assume anything / Trust no-one, nothing / Paranoia is your friend / Think for yourself
Top
smg
Veteran
Veteran
User avatar
Posts: 1402
Joined: Fri Aug 13, 2004 8:00 pm
Location: /home/stephan

  • Quote

Post by smg » Sun Apr 29, 2007 2:38 pm

Think4UrS11 wrote:
smg wrote:
Think4UrS11 wrote:

Code: Select all

bla=$(ls -n /usr/src | cut -b43- | sed '$!d')
falsch :)
Weil?
Der letzte installierte ist für mich der der als letztes via emerge gezogen wurde und wie der OP bereits sagte möchte er sich lieber nicht auf das USE-Flag verlassen.
ups lol, ich habe das NICHT aufs useflag verlassen als auf das useflag verlassen gelesen. sorry. :roll:

p.s.: aber du solltest trotzdem -b47- machen nicht 43 :)

Code: Select all

stephan@unimatrix ~ $ ls -n /usr/src | cut -b43- | sed '$!d'

nux-2.6.20-gentoo-r7

stephan@unimatrix ~ $ ls -n /usr/src | cut -b47- | sed '$!d'

2.6.20-gentoo-r7
GnuPG-Key-ID: 0xF8C275D4
Fingerprint: 5B6F 134A 189B A24D 342B 0961 8D4B 0230 F8C2 75D4

Code: Select all

perl -WTe '($")=$/;print qq(@{[reverse('0'..'100')]}$/BOOM!$/);'
Top
firefly
Watchman
Watchman
Posts: 5385
Joined: Thu Oct 31, 2002 8:24 pm

  • Quote

Post by firefly » Sun Apr 29, 2007 2:45 pm

smg wrote:
Think4UrS11 wrote:
smg wrote:
Think4UrS11 wrote:

Code: Select all

bla=$(ls -n /usr/src | cut -b43- | sed '$!d')
falsch :)
Weil?
Der letzte installierte ist für mich der der als letztes via emerge gezogen wurde und wie der OP bereits sagte möchte er sich lieber nicht auf das USE-Flag verlassen.
ups lol, ich habe das NICHT aufs useflag verlassen als auf das useflag verlassen gelesen. sorry. :roll:

p.s.: aber du solltest trotzdem -b47- machen nicht 43 :)

Code: Select all

stephan@unimatrix ~ $ ls -n /usr/src | cut -b43- | sed '$!d'

nux-2.6.20-gentoo-r7

stephan@unimatrix ~ $ ls -n /usr/src | cut -b47- | sed '$!d'

2.6.20-gentoo-r7
funktioniert nicht ;), wenn in /usr/src/ sich andere verzeichnisse befinden

Code: Select all

 -> ls -n /usr/src | cut -b47- | sed '$!d' 
3_Linux_STA_Drv1.0.3.6
besser ist:

Code: Select all

 ls -dn /usr/src/linux-* | cut -b48- | sed '$!d'
linux-2.6.19-suspend2-r3
Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn.
Top
think4urs11
Bodhisattva
Bodhisattva
User avatar
Posts: 6659
Joined: Wed Jun 25, 2003 9:51 pm
Location: above the cloud

  • Quote

Post by think4urs11 » Sun Apr 29, 2007 2:51 pm

@smg: bei mir klappt das ab Stelle 43
kommt evtl. auf die Darstellung von Datum/Uhrzeit an in der ls-Ausgabe?

@firefly: Wenn nichts anderes geschrieben ist gehe ich von einer Standardinstallation aus und da gibt es in /usr/src nix anderes ;)
Nothing is secure / Security is always a trade-off with usability / Do not assume anything / Trust no-one, nothing / Paranoia is your friend / Think for yourself
Top
smg
Veteran
Veteran
User avatar
Posts: 1402
Joined: Fri Aug 13, 2004 8:00 pm
Location: /home/stephan

  • Quote

Post by smg » Sun Apr 29, 2007 3:00 pm

Think4UrS11 wrote:@smg: bei mir klappt das ab Stelle 43
kommt evtl. auf die Darstellung von Datum/Uhrzeit an in der ls-Ausgabe
kann sein :)
Think4UrS11 wrote: @firefly: Wenn nichts anderes geschrieben ist gehe ich von einer Standardinstallation aus und da gibt es in /usr/src nix anderes ;)
me too :arrow: ack :)
GnuPG-Key-ID: 0xF8C275D4
Fingerprint: 5B6F 134A 189B A24D 342B 0961 8D4B 0230 F8C2 75D4

Code: Select all

perl -WTe '($")=$/;print qq(@{[reverse('0'..'100')]}$/BOOM!$/);'
Top
firefly
Watchman
Watchman
Posts: 5385
Joined: Thu Oct 31, 2002 8:24 pm

  • Quote

Post by firefly » Sun Apr 29, 2007 3:04 pm

Think4UrS11: ok, nur dann wundert er sich, das sein sktipt nicht mehr funktioniert, falls er doch mal in /usr/src zusäztliche verzeichnisse hat, die sortiert, nach den linux-* verzeichnissen in der ausgabe auftauchen.

so gehts auch:

Code: Select all

ls /usr/src/ | grep linux-  | sed '$!d'
und dabei ist die Darstellung von Datum/Uhrzeit von ls egal ;)
Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn.
Top
smg
Veteran
Veteran
User avatar
Posts: 1402
Joined: Fri Aug 13, 2004 8:00 pm
Location: /home/stephan

  • Quote

Post by smg » Sun Apr 29, 2007 3:07 pm

Code: Select all

ls -ld /usr/src/linux* | awk -F "linux-" ' END { print $NF } '
das geht auch, datum / uhrzeit ebenfalls egal und eine pipe weniger
Last edited by smg on Sun Apr 29, 2007 3:09 pm, edited 1 time in total.
GnuPG-Key-ID: 0xF8C275D4
Fingerprint: 5B6F 134A 189B A24D 342B 0961 8D4B 0230 F8C2 75D4

Code: Select all

perl -WTe '($")=$/;print qq(@{[reverse('0'..'100')]}$/BOOM!$/);'
Top
think4urs11
Bodhisattva
Bodhisattva
User avatar
Posts: 6659
Joined: Wed Jun 25, 2003 9:51 pm
Location: above the cloud

  • Quote

Post by think4urs11 » Sun Apr 29, 2007 3:08 pm

@firefly: *läster* klappt nicht mehr unbedingt wenn in/usr/src etwas wie linux-headers oder ähnliches existiert ;)
Last edited by think4urs11 on Sun Apr 29, 2007 3:10 pm, edited 1 time in total.
Nothing is secure / Security is always a trade-off with usability / Do not assume anything / Trust no-one, nothing / Paranoia is your friend / Think for yourself
Top
smg
Veteran
Veteran
User avatar
Posts: 1402
Joined: Fri Aug 13, 2004 8:00 pm
Location: /home/stephan

  • Quote

Post by smg » Sun Apr 29, 2007 3:10 pm

Think4UrS11 wrote:@firefly: *läster* klappt nicht wenn in/usr/src etwas wie linux-headers existiert ;)
:D :D :D

na ja jetzt haben wir ja genug lösungen *g*
GnuPG-Key-ID: 0xF8C275D4
Fingerprint: 5B6F 134A 189B A24D 342B 0961 8D4B 0230 F8C2 75D4

Code: Select all

perl -WTe '($")=$/;print qq(@{[reverse('0'..'100')]}$/BOOM!$/);'
Top
firefly
Watchman
Watchman
Posts: 5385
Joined: Thu Oct 31, 2002 8:24 pm

  • Quote

Post by firefly » Sun Apr 29, 2007 3:14 pm

Think4UrS11 wrote:@firefly: *läster* klappt nicht mehr unbedingt wenn in/usr/src etwas wie linux-headers oder ähnliches existiert ;)
aber nur, wenn das linux-headers verzeichniss sortiert nach den kernel-source verzeichnissen in der ausgabe auftaucht ;)
Das selbe gilt auch, wenn verschiedene *-sources typen installiert sind. z.b. gentoo-sources und suspend2-sources dann taucht in der ausgabe von der zeile die suspend2-sources auf.

Think4UrS11: dann wiedersprichst du deiner eigenen aussage, das du der meinung bist, das sich nur die linux-sourcen in /usr/src befinden ;)
Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn.
Top
l3u
Advocate
Advocate
User avatar
Posts: 2619
Joined: Wed Jan 26, 2005 3:12 pm
Location: Konradsreuth (Germany)
Contact:
Contact l3u
Website

  • Quote

Post by l3u » Sun Apr 29, 2007 3:25 pm

Code: Select all

version=`ls -gG --time-style + /usr/src/linux | awk '{print $6}'`
version=${version##*linux-}
?
Top
smg
Veteran
Veteran
User avatar
Posts: 1402
Joined: Fri Aug 13, 2004 8:00 pm
Location: /home/stephan

  • Quote

Post by smg » Sun Apr 29, 2007 3:35 pm

Auch gut Libby, aber dazu brauchst du die Bash / Sh explizit. Lieber Portabel mit sed oder awk.
GnuPG-Key-ID: 0xF8C275D4
Fingerprint: 5B6F 134A 189B A24D 342B 0961 8D4B 0230 F8C2 75D4

Code: Select all

perl -WTe '($")=$/;print qq(@{[reverse('0'..'100')]}$/BOOM!$/);'
Top
smg
Veteran
Veteran
User avatar
Posts: 1402
Joined: Fri Aug 13, 2004 8:00 pm
Location: /home/stephan

  • Quote

Post by smg » Sun Apr 29, 2007 3:47 pm

Code: Select all

#!/bin/bash

# input your possible kernels
vals=(gentoo suspend2)
input=$(ls -ld /usr/src/linux-*)

i=1
echo "Latest Kernels: "
for x in ${vals[*]}; do
    echo -n "#" $i $x-sources "=> " && awk -F "linux-" '/'"$x"'/{print $NF}' <<< "$input" | sed '$!d' 
    i=$((i+1))
done && echo
GnuPG-Key-ID: 0xF8C275D4
Fingerprint: 5B6F 134A 189B A24D 342B 0961 8D4B 0230 F8C2 75D4

Code: Select all

perl -WTe '($")=$/;print qq(@{[reverse('0'..'100')]}$/BOOM!$/);'
Top
165177
Apprentice
Apprentice
Posts: 156
Joined: Fri Apr 27, 2007 3:57 pm

  • Quote

Post by 165177 » Sun Apr 29, 2007 4:24 pm

Code: Select all

emerge --search gentoo-sources | awk -F": " '/Latest version installed/ { print $2; exit }'  
Top
smg
Veteran
Veteran
User avatar
Posts: 1402
Joined: Fri Aug 13, 2004 8:00 pm
Location: /home/stephan

  • Quote

Post by smg » Sun Apr 29, 2007 4:55 pm

Das ist aber langsam mit emerge --search!

Code: Select all

eix -s gentoo-sources | awk -v RS="" -v FS="\n" '{print substr( $(NF-2),index( $(NF-2) ,"(") +1, index( $(NF-2), ")") - index ($(NF-2), "(")-1 ) }'
P.S.: Merke grad, dass das doof ist, weil da der Output manchmal bogus ist, ich würde zu obiger Lösung tendieren oder eine andere von mir oder eine von Think4UrS11 :)
GnuPG-Key-ID: 0xF8C275D4
Fingerprint: 5B6F 134A 189B A24D 342B 0961 8D4B 0230 F8C2 75D4

Code: Select all

perl -WTe '($")=$/;print qq(@{[reverse('0'..'100')]}$/BOOM!$/);'
Top
think4urs11
Bodhisattva
Bodhisattva
User avatar
Posts: 6659
Joined: Wed Jun 25, 2003 9:51 pm
Location: above the cloud

  • Quote

Post by think4urs11 » Sun Apr 29, 2007 5:01 pm

und damit es nicht langweilig wird noch eine Variante mit ganz anderem Ansatz

Code: Select all

grep sys-kernel /var/log/emerge.log | sed -e '$!d;s/.*-\(2\..* \)to \//\1/'
Nothing is secure / Security is always a trade-off with usability / Do not assume anything / Trust no-one, nothing / Paranoia is your friend / Think for yourself
Top
smg
Veteran
Veteran
User avatar
Posts: 1402
Joined: Fri Aug 13, 2004 8:00 pm
Location: /home/stephan

  • Quote

Post by smg » Sun Apr 29, 2007 5:10 pm

Code: Select all

ls -l /var/db/pkg/sys-kernel/ | awk 'BEGIN { kernel="gentoo-sources"; FS=kernel"-" } $0 ~ kernel {print kernel "-" $NF}' | sed '$!d'

Code: Select all

find /usr/src -maxdepth 1 -iname "*gentoo*" | sed 's/.*linux-//;$!d' 
GnuPG-Key-ID: 0xF8C275D4
Fingerprint: 5B6F 134A 189B A24D 342B 0961 8D4B 0230 F8C2 75D4

Code: Select all

perl -WTe '($")=$/;print qq(@{[reverse('0'..'100')]}$/BOOM!$/);'
Top
think4urs11
Bodhisattva
Bodhisattva
User avatar
Posts: 6659
Joined: Wed Jun 25, 2003 9:51 pm
Location: above the cloud

  • Quote

Post by think4urs11 » Sun Apr 29, 2007 5:22 pm

einer geht noch...

wer sagt eigentlich das der letzte *installierte* Kernel identisch zum zuletzt emergten oder dem neuesten in /usr/src ist?
Der letzte installierte kann auch der neueste in /boot sein
sofern also name=version (und keine anderen Dateien dieses Suchmusters existieren)

Code: Select all

ls -n /boot/2.* | sed -e '$!d' | cut -d/ -f3
Nothing is secure / Security is always a trade-off with usability / Do not assume anything / Trust no-one, nothing / Paranoia is your friend / Think for yourself
Top
HymiR
n00b
n00b
User avatar
Posts: 32
Joined: Sun Sep 10, 2006 10:56 am
Location: Im Sumpf

  • Quote

Post by HymiR » Tue May 01, 2007 6:29 pm

Allerbesten Dank für diese reichlichen Tipps und Vorschläge;)
Sorry, dass ich solange abwesend war.

Gruß, Hymir.
"Ich will nie zum Wiedersprechen herausfordern; vielmehr: helft, mit mir das Problem zu gestalten!..."
(Aus "Kritik der höchsten Werte", Friedrich Wilhelm Nietzsche, 1844-1900)
Top
Post Reply
  • Print view

24 posts • Page 1 of 1

Return to “Deutsches Forum (German)”

Jump to
  • Assistance
  • ↳   News & Announcements
  • ↳   Frequently Asked Questions
  • ↳   Installing Gentoo
  • ↳   Multimedia
  • ↳   Desktop Environments
  • ↳   Networking & Security
  • ↳   Kernel & Hardware
  • ↳   Portage & Programming
  • ↳   Gamers & Players
  • ↳   Other Things Gentoo
  • ↳   Unsupported Software
  • Discussion & Documentation
  • ↳   Documentation, Tips & Tricks
  • ↳   Gentoo Chat
  • ↳   Gentoo Forums Feedback
  • ↳   Duplicate Threads
  • International Gentoo Users
  • ↳   中文 (Chinese)
  • ↳   Dutch
  • ↳   Finnish
  • ↳   French
  • ↳   Deutsches Forum (German)
  • ↳   Diskussionsforum
  • ↳   Deutsche Dokumentation
  • ↳   Greek
  • ↳   Forum italiano (Italian)
  • ↳   Forum di discussione italiano
  • ↳   Risorse italiane (documentazione e tools)
  • ↳   Polskie forum (Polish)
  • ↳   Instalacja i sprzęt
  • ↳   Polish OTW
  • ↳   Portuguese
  • ↳   Documentação, Ferramentas e Dicas
  • ↳   Russian
  • ↳   Scandinavian
  • ↳   Spanish
  • ↳   Other Languages
  • Architectures & Platforms
  • ↳   Gentoo on ARM
  • ↳   Gentoo on PPC
  • ↳   Gentoo on Sparc
  • ↳   Gentoo on Alternative Architectures
  • ↳   Gentoo on AMD64
  • ↳   Gentoo for Mac OS X (Portage for Mac OS X)
  • Board index
  • All times are UTC
  • Delete cookies

© 2001–2026 Gentoo Foundation, Inc.

Powered by phpBB® Forum Software © phpBB Limited

Privacy Policy

 

 

magic