Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Něco pro SEDaře [vyřešeno]  (Přečteno 2306 krát)

NoWin

  • Host
Něco pro SEDaře [vyřešeno]
« kdy: 06 Listopadu 2009, 04:34:07 »
Nazdar,
potřebuju seda přemluvit k tomu, aby mi výraz ACTIVE_CONSOLES="/dev/tty[1-n]" (kde n je číslo 3-9) převedl na ACTIVE_CONSOLES="/dev/tty[1-2]"
Kdyby tam nebyly ty hranatý závorky, tak si s tím tak nějak poradím, ale vůbec nevím, čím je nahradit/obohatit, aby mě to poslechlo.

EDIT:

Tak nic...
Kód: [Vybrat]
sed 's/^ACTIVE_CONSOLES="\/dev\/tty\[1-[3-9]\]"/ACTIVE_CONSOLES="\/dev\/tty[1-2]"/g' :)
« Poslední změna: 06 Listopadu 2009, 12:14:21 od Premet »

nettezzaumana

  • Host
Re: Něco pro SEDaře [vyřešeno]
« Odpověď #1 kdy: 06 Listopadu 2009, 16:46:48 »
Kód: (??) [Vybrat]
$ echo 'ACTIVE_CONSOLES="/dev/tty[1-4]"' | sed 's/\(^.[^[]*\)\[1-[3-9]\].*/\1[1-2]"/'
ACTIVE_CONSOLES="/dev/tty[1-2]"
« Poslední změna: 06 Listopadu 2009, 16:50:19 od Bad Batz Maru »

NoWin

  • Host
Re: Něco pro SEDaře [vyřešeno]
« Odpověď #2 kdy: 06 Listopadu 2009, 19:16:58 »
Kód: (??) [Vybrat]
$ echo 'ACTIVE_CONSOLES="/dev/tty[1-4]"' | sed 's/\(^.[^[]*\)\[1-[3-9]\].*/\1[1-2]"/'
ACTIVE_CONSOLES="/dev/tty[1-2]"
Díky, taky funguje!

Ale přece jen si s něčím nevím rady- potřebuju, aby z příkazu free -m | grep "Mem:" vylezlo místo:
Kód: [Vybrat]
Mem:          2025       1179        845          0        109        714

pouze tohle:
Kód: [Vybrat]
2025Mezery mezi jednotlivýma položkama byly nejspíš vytvořeny tabulátorem, teď to jsou obyčejný mezery, jejichž počet může bejt variabilní, dejme tomu 1-8, respektive 1-16. Potřebuju z toho vyloudit jen jediný číslo (velikost RAM v MiB), jehož hodnota i dýlka bude taky variabilní.
Chci to do svýho prográmku, ten mimo jiný bude strojům na základě velikosti RAM nastavovat hodnotu vm_swappiness ;)
« Poslední změna: 06 Listopadu 2009, 19:20:54 od Roman Horník »

premet

  • Host
Re: Něco pro SEDaře [vyřešeno]
« Odpověď #3 kdy: 06 Listopadu 2009, 19:19:59 »
Jestli je to pořád ve stejným formátu, jen jiný hodnoty tak awk  :).

Kód: [Vybrat]
echo "Mem:       2074012    1204944     869068          0     110460     731436" | awk '{print $2}'
Kód: [Vybrat]
2074012

NoWin

  • Host
Re: Něco pro SEDaře [vyřešeno]
« Odpověď #4 kdy: 06 Listopadu 2009, 19:23:51 »
Jestli je to pořád ve stejným formátu, jen jiný hodnoty tak awk  :).

Kód: [Vybrat]
echo "Mem:       2074012    1204944     869068          0     110460     731436" | awk '{print $2}'
Kód: [Vybrat]
2074012
Jé, díky!
Mezitím jsem sice změnil kilo za mega (zbytečně moc čísel), ale funguje to, navíc geniálně jednoduše!

Díky moc! ;)

free -m | grep "Mem:" | awk '{print $2}'

nettezzaumana

  • Host
Re: Něco pro SEDaře [vyřešeno]
« Odpověď #5 kdy: 06 Listopadu 2009, 21:58:20 »
umh. konceptualne spatne a neefektivne ;), spravne reseni je:

Kód: [Vybrat]
> foo=Mapped; sed -n "/^$foo/s/^.[^0-9]\+\([0-9]\+\).*/\1/p" /proc/meminfo
109404

NoWin

  • Host
Re: Něco pro SEDaře [vyřešeno]
« Odpověď #6 kdy: 06 Listopadu 2009, 22:29:13 »
umh. konceptualne spatne a neefektivne ;), spravne reseni je:

Kód: [Vybrat]
> foo=Mapped; sed -n "/^$foo/s/^.[^0-9]\+\([0-9]\+\).*/\1/p" /proc/meminfo
109404
↑ Tohle číslo je co? :) Mně z toho leze 69xxx (69686, 69092,... pokaždý jiná hodnota)...

qUAKER

  • Host
Re: Něco pro SEDaře [vyřešeno]
« Odpověď #7 kdy: 07 Listopadu 2009, 10:55:19 »
umh. konceptualne spatne a neefektivne ;), spravne reseni je:

Kód: [Vybrat]
> foo=Mapped; sed -n "/^$foo/s/^.[^0-9]\+\([0-9]\+\).*/\1/p" /proc/meminfo
109404
↑ Tohle číslo je co? :) Mně z toho leze 69xxx (69686, 69092,... pokaždý jiná hodnota)...

si catni /proc/meminfo a uvidíš.. Ntzův příkaz manipuluje s řádkem Mapped, takže si to nahraď čím chceš

qUAKER

  • Host
Re: Něco pro SEDaře [vyřešeno]
« Odpověď #8 kdy: 07 Listopadu 2009, 11:09:31 »
btw, Ntz, není jednodušší napsat:

Kód: [Vybrat]
debian@debian-desktop:~$ foo=Mapped; cat /proc/meminfo | grep $foo | sed -e "s/[^0-9]*//g"
135540

?

arrange

  • Závislák
  • ***
  • Příspěvků: 4031
  • "jdu s hlavou vztyčenou..."
Re: Něco pro SEDaře [vyřešeno]
« Odpověď #9 kdy: 07 Listopadu 2009, 14:41:43 »
Jednodušší asi jo, ale dvě roury?  :D  :D
Kód: [Vybrat]
arrange@lean:~$ time for i in {1..1000}; do foo=Mapped; cat /proc/meminfo | grep $foo | sed -e "s/[^0-9]*//g" > /dev/null; done

real 0m11.167s
user 0m5.272s
sys 0m5.308s
arrange@lean:~$ time for i in {1..1000}; do foo=Mapped; sed -n "/^$foo/s/^.[^0-9]\+\([0-9]\+\).*/\1/p" /proc/meminfo > /dev/null; done

real 0m4.397s
user 0m2.056s
sys 0m1.792s
arrange@lean:~$ time for i in {1..1000}; do awk '/^Mapped/ {print $2}' /proc/meminfo > /dev/null; done

real 0m3.781s
user 0m1.564s
sys 0m2.024s
http://www.openstreetmap.org - mapy celého světa "wiki style"

qUAKER

  • Host
Re: Něco pro SEDaře [vyřešeno]
« Odpověď #10 kdy: 07 Listopadu 2009, 15:00:14 »
Jednodušší asi jo, ale dvě roury?  :D  :D
Kód: [Vybrat]
arrange@lean:~$ time for i in {1..1000}; do foo=Mapped; cat /proc/meminfo | grep $foo | sed -e "s/[^0-9]*//g" > /dev/null; done

real 0m11.167s
user 0m5.272s
sys 0m5.308s
arrange@lean:~$ time for i in {1..1000}; do foo=Mapped; sed -n "/^$foo/s/^.[^0-9]\+\([0-9]\+\).*/\1/p" /proc/meminfo > /dev/null; done

real 0m4.397s
user 0m2.056s
sys 0m1.792s
arrange@lean:~$ time for i in {1..1000}; do awk '/^Mapped/ {print $2}' /proc/meminfo > /dev/null; done

real 0m3.781s
user 0m1.564s
sys 0m2.024s

jasně.. jenže když to pouštíš jen tak, není to fuk?

Kód: [Vybrat]
debian@debian-desktop:~$ time for i in {1..1000}; do foo=Mapped; cat /proc/meminfo | grep $foo | sed -e "s/[^0-9]*//g" > /dev/null; done

real 0m5.522s
user 0m1.969s
sys 0m5.341s
debian@debian-desktop:~$ time for i in {1..1000}; do foo=Mapped; sed -n "/^$foo/s/^.[^0-9]\+\([0-9]\+\).*/\1/p" /proc/meminfo > /dev/null; done

real 0m3.584s
user 0m1.159s
sys 0m2.448s
debian@debian-desktop:~$ time for i in {1..1000}; do awk '/^Mapped/ {print $2}' /proc/meminfo > /dev/null; done

real 0m3.929s
user 0m1.357s
sys 0m2.503s

arrange

  • Závislák
  • ***
  • Příspěvků: 4031
  • "jdu s hlavou vztyčenou..."
Re: Něco pro SEDaře [vyřešeno]
« Odpověď #11 kdy: 07 Listopadu 2009, 15:17:29 »
Je to úplně jedno  :D

Proto tam mám ty dva smajly  :D  :D
http://www.openstreetmap.org - mapy celého světa "wiki style"

qUAKER

  • Host
Re: Něco pro SEDaře [vyřešeno]
« Odpověď #12 kdy: 07 Listopadu 2009, 16:08:47 »
když ne dvě roury, tak použít prostě

Kód: [Vybrat]
foo=Mapped; cat /proc/meminfo | sed -n "/^$foo/s/[^0-9]*//pg"
:P

nettezzaumana

  • Host
Re: Něco pro SEDaře [vyřešeno]
« Odpověď #13 kdy: 07 Listopadu 2009, 19:06:44 »
hehe .. quejky, je to jedno, ale moc rour a moc binarek == neefektivne spotrebovane resources ..

ad.sed) sed ma syntaxi `sed VYRAZ VSTUP`, takze `cat soubor | sed VYRAZ` je noseni drivi do lesa

qUAKER

  • Host
Re: Něco pro SEDaře [vyřešeno]
« Odpověď #14 kdy: 07 Listopadu 2009, 19:49:03 »
hehe .. quejky, je to jedno, ale moc rour a moc binarek == neefektivne spotrebovane resources ..

ad.sed) sed ma syntaxi `sed VYRAZ VSTUP`, takze `cat soubor | sed VYRAZ` je noseni drivi do lesa

hm ok..
Kód: [Vybrat]
debian@debian-desktop:~$ foo=Mapped; sed -n "/^$foo/s/[^0-9]*//pg" /proc/meminfo
138568

arrange

  • Závislák
  • ***
  • Příspěvků: 4031
  • "jdu s hlavou vztyčenou..."
Re: Něco pro SEDaře [vyřešeno]
« Odpověď #15 kdy: 07 Listopadu 2009, 21:01:46 »
 rejpal :(
Kód: [Vybrat]
arrange@lean:~$ foo=DirectMap4k; sed -n "/^$foo/ s/[^0-9]*//pg" /proc/meminfo
4102392
arrange@lean:~$ foo=DirectMap4k; sed -n "/^$foo/s/^.[^0-9]\+\([0-9]\+\).*/\1/p" /proc/meminfo
4
arrange@lean:~$ foo=DirectMap4k; grep $foo /proc/meminfo
DirectMap4k:      102392 kB
http://www.openstreetmap.org - mapy celého světa "wiki style"

qUAKER

  • Host
Re: Něco pro SEDaře [vyřešeno]
« Odpověď #16 kdy: 07 Listopadu 2009, 21:05:52 »
rejpal :(
Kód: [Vybrat]
arrange@lean:~$ foo=DirectMap4k; sed -n "/^$foo/ s/[^0-9]*//pg" /proc/meminfo
4102392
arrange@lean:~$ foo=DirectMap4k; sed -n "/^$foo/s/^.[^0-9]\+\([0-9]\+\).*/\1/p" /proc/meminfo
4
arrange@lean:~$ foo=DirectMap4k; grep $foo /proc/meminfo
DirectMap4k:      102392 kB


vypadá to že prostě při každém z těchto příkazů je to s tou pamětí jinak no :)

 

Provoz zaštiťuje spolek OpenAlt.