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: bash - vytvorenie textoveho suboru s udajmi z inych zdrojov [vyřešeno]  (Přečteno 1374 krát)

Peterx

  • Aktivní člen
  • *
  • Příspěvků: 403
Zdravim kazdeho, mam takyto problem a vobec netusim ako by som ho mohol riesit.
Pouzivam xmacro
Priklad mojho makra:
Kód: [Vybrat]
MotionNotify 465 587
MotionNotify 466 587
MotionNotify 466 587
ButtonRelease 1
MotionNotify 503 588
ButtonPress 1
MotionNotify 503 588
ButtonRelease 1
MotionNotify 509 581
ButtonPress 1
MotionNotify 509 581
ButtonRelease 1
Delay 35
MotionNotify 665 424
ButtonPress 1
MotionNotify 665 424
ButtonRelease 1
MotionNotify 649 408
ButtonPress 1
MotionNotify 649 408
ButtonRelease 1
MotionNotify 644 403
ButtonPress 1
MotionNotify 643 403
MotionNotify 642 403
MotionNotify 641 403
MotionNotify 640 403
MotionNotify 639 403

Z tohoto suboru potrebujem vytvorit dalsi subor presne takyto isty, ale k hodnotam MotionNotify potrebujem pripocitat nejake hodnoti.
Priklad:
MotionNotify 639 403 > MotionNotify 682 470
Viete mi niekto poradit?
Aby som nezabudol, ostatne riadky musia byt v povodnom stave a hodnoty MotionNotify ktore nacitavam su rozne

« Poslední změna: 14 Září 2010, 00:34:41 od kiklhorn »

Kedrigern

Re: bash - vytvorenie textoveho suboru s udajmi z inych zdrojov
« Odpověď #1 kdy: 09 Září 2010, 15:48:57 »
Kód: [Vybrat]
cat soubor | grep MotionNotify | cut -d ' ' -f 2Vyhodí první číslo.

Kód: [Vybrat]
cat soubor | grep MotionNotify | cut -d ' ' -f 3
Vyhodí druhé.

Do proměnné to dáš takto:
Kód: [Vybrat]
num=$(cat soubor | grep MotionNotify | cut -d ' ' -f 3)
Práce s proměnnou je již snad jasná. Nicméně takto to nebude příliš efektivní, protože to vždy přečte celý soubor, ale pokud to není kritické tak je to asi jedno.

arrange

  • Závislák
  • ***
  • Příspěvků: 4031
  • "jdu s hlavou vztyčenou..."
Re: bash - vytvorenie textoveho suboru s udajmi z inych zdrojov
« Odpověď #2 kdy: 09 Září 2010, 15:55:22 »
Přičte vždy stejný offset pro x a y.
Kód: [Vybrat]
x=5; y=10; awk '/^MotionNotify/ {print $1,$x+$2,$y+$3} ! /^MotionNotify/ {print $0}'
http://www.openstreetmap.org - mapy celého světa "wiki style"

Peterx

  • Aktivní člen
  • *
  • Příspěvků: 403
Re: bash - vytvorenie textoveho suboru s udajmi z inych zdrojov
« Odpověď #3 kdy: 09 Září 2010, 17:44:41 »
Tak s tymi premennymi je to nemozne lebo mam tam aj okrem MotionNotify aj nieco ine a nikdy neviem kolko krat a na akom riadku.

Na druhu moznost som spravil skript:

Kód: [Vybrat]
#!/bin/bash



x=1000
y=2000
cat m4.macro | awk '/^MotionNotify/ {print $1,$x+$2,$y+$3} ! /^MotionNotify/ {print $0}'

Ale z celeho mi funguje len cat....  ako by tam awk ani nebol, predpokladam ze tam nefunguje $x+$2, inak by to bolo fajn

Ak nahradim $x a $y  cislami tak to funguje.
« Poslední změna: 09 Září 2010, 17:59:49 od Peterx »

Peterx

  • Aktivní člen
  • *
  • Příspěvků: 403
Re: bash - vytvorenie textoveho suboru s udajmi z inych zdrojov
« Odpověď #4 kdy: 09 Září 2010, 18:09:38 »
tak zu to mam:

Kód: [Vybrat]
#!/bin/bash



x=1000
y=2000
cat m4.macro | awk '/^MotionNotify/ {print $1,'$x'+$2,'$y'+$3} ! /^MotionNotify/ {print $0}'

chyba bola v tom ze premenne trebalo napisat do ''  ... '$y'

Dik za rady

 

Provoz zaštiťuje spolek OpenAlt.