Re: valtozo helyettesites

2010-03-30 bef zés Gabor E. Tusnady
 #!/bin/bash
 
 . f1.sh
 
 echo Van $alma db almam es
 echo $korte db kortem.
 ==%%==
 
 $ ./f2.sh 
 Van 1 db almam es
 3 db kortem.
 
 vagy nem ertek valamit?

ebben a file-ban nincsenek echo-k

tusi

_
linux lista  -  linux@mlf.linux.rulez.org
http://mlf2.linux.rulez.org/mailman/listinfo/linux


Re: valtozo helyettesites

2010-03-30 bef zés Bartos-Elekes Zsolt
Gabor Tusnady wrote:

 Hogyan tudom bash scrittel eloallitani azt a file-t, amiben a file2-ben
 levo valtozokat a file1-ben szereplo ertekekkel helyettesiti?

$ cat file1
alma=1
korte=3

$ cat file2
Van $alma almam es $korte kortem.

$ cat korlevel
#! /bin/sh

if [ $# -ne 2 ]; then
   echo Usage: ${0##*/} valtozo-file szoveg-file  /dev/stderr
   exit 1
fi

TEMPFILE=$(mktemp -qt ${0##*/}.XX) || TEMPFILE=/tmp/${0##*/}.$$

{
   echo cat  EOF
   cat $2
   echo EOF
}  $TEMPFILE

. $1
. $TEMPFILE

rm -f $TEMPFILE


$ ./korlevel file1 file2
Van 1 almam es 3 kortem.

-- 
Sziasztok: Zsolt
_
linux lista  -  linux@mlf.linux.rulez.org
http://mlf2.linux.rulez.org/mailman/listinfo/linux


Re: valtozo helyettesites

2010-03-30 bef zés Kiss Gabor

In article 1269875240.23837.6.ca...@botond.simon.enzim.hu,
Gabor Tusnady t...@enzim.hu writes:
 Van egy file-om amiben kulonbozo valtozok vannak definialva:
 
 file1:
 alma=1
 korte=3
 ...
 
 Van egy masik file-om, amibe meg ezek a valtozok valamilyen modon
 szerepelnek:
 
 file2:
 Van $alma db almam es 
 $korte db kortem.
 
 
 Hogyan tudom bash scrittel eloallitani azt a file-t, amiben a file2-ben
 levo valtozokat a file1-ben szereplo ertekekkel helyettesiti?
 
 eredmeny_file:
 Van 1 db almam es
 3 db kortem.


$ cat korlevel.sh 
#!/bin/sh
. file1
lo=`cat file2`
eval echo \$lo\
$ ./korlevel.sh
Van 1 db almam es
3 db kortem.
$

Hátránya: 1-2 kB-nál nagyobb file2-re már nem lesz jó.

g
_
linux lista  -  linux@mlf.linux.rulez.org
http://mlf2.linux.rulez.org/mailman/listinfo/linux


Re: valtozo helyettesites

2010-03-30 bef zés Ferenc Wagner
Gabor Tusnady t...@enzim.hu writes:

 file1:
 alma=1
 korte=3
 ...

 file2:
 Van $alma db almam es 
 $korte db kortem.

 eredmeny_file:
 Van 1 db almam es
 3 db kortem.

$ { cat file1; echo cat EOF; cat file2; echo EOF; } | sh eredmeny_file
_
linux lista  -  linux@mlf.linux.rulez.org
http://mlf2.linux.rulez.org/mailman/listinfo/linux


Re: valtozo helyettesites

2010-03-30 bef zés Gabor E. Tusnady
Koszonom mindegyik valaszt, sokat tanultam beloluk. Legjobban ez
tetszett:

  { cat file1; echo cat EOF; cat file2; echo EOF; } | sh eredmeny_file

tusi

_
linux lista  -  linux@mlf.linux.rulez.org
http://mlf2.linux.rulez.org/mailman/listinfo/linux


Re: valtozo helyettesites

2010-03-30 bef zés Vilmos Soti

Gabor Tusnady t...@enzim.hu writes:

 Kedves Lista!
 
 Valami nagyon egyszerut szeretnek csinalni:
 
 Van egy file-om amiben kulonbozo valtozok vannak definialva:
 
 file1:
 alma=1
 korte=3
 ...
 
 Van egy masik file-om, amibe meg ezek a valtozok valamilyen modon
 szerepelnek:
 
 file2:
 Van $alma db almam es 
 $korte db kortem.

$ . file1
$ cat file2 | while read l; do eval echo $l; done

De ezzel nagyon vigyazz az eval miatt.

Vilmos
_
linux lista  -  linux@mlf.linux.rulez.org
http://mlf2.linux.rulez.org/mailman/listinfo/linux


valtozo helyettesites

2010-03-29 bef zés Gabor Tusnady
Kedves Lista!

Valami nagyon egyszerut szeretnek csinalni:

Van egy file-om amiben kulonbozo valtozok vannak definialva:

file1:
alma=1
korte=3
...

Van egy masik file-om, amibe meg ezek a valtozok valamilyen modon
szerepelnek:

file2:
Van $alma db almam es 
$korte db kortem.


Hogyan tudom bash scrittel eloallitani azt a file-t, amiben a file2-ben
levo valtozokat a file1-ben szereplo ertekekkel helyettesiti?

eredmeny_file:
Van 1 db almam es
3 db kortem.

es persze a file2 semmilyen mas modon ne valtozzon (pl tabulatorok,
extra karakterek stb megmaradjanak)

Koszonom,
tusi


_
linux lista  -  linux@mlf.linux.rulez.org
http://mlf2.linux.rulez.org/mailman/listinfo/linux


Re: valtozo helyettesites

2010-03-29 bef zés Attila Rajmund Nohl
Gabor Tusnady t...@enzim.hu írta, 2010.03.29.:
 Kedves Lista!

 Valami nagyon egyszerut szeretnek csinalni:

 Van egy file-om amiben kulonbozo valtozok vannak definialva:

 file1:
 alma=1
 korte=3
 ...

 Van egy masik file-om, amibe meg ezek a valtozok valamilyen modon
 szerepelnek:

 file2:
 Van $alma db almam es
 $korte db kortem.


 Hogyan tudom bash scrittel eloallitani azt a file-t, amiben a file2-ben
 levo valtozokat a file1-ben szereplo ertekekkel helyettesiti?

 eredmeny_file:
 Van 1 db almam es
 3 db kortem.

 es persze a file2 semmilyen mas modon ne valtozzon (pl tabulatorok,
 extra karakterek stb megmaradjanak)

Nem próbáltam ki, de elindulásnak jó lehet: file1-ből generálsz egy
scriptet, ami sed parancsokkal lecseréli a változókat, valahogy így:
sed 's,\(.*\)=\(.*\),%s/\\$\1/$2/g,' file1 sed.sh

Ettől valahogy úgy kellene kinéznie a sed.sh-nak, hogy
%s/\$alma/1/g
%s/\$korte/3/g

Utána
bash ./sed.sh file2

Meg lehet oldani egy generált sed paranccsal is, meg talán egyetlen
parancssorral is.
_
linux lista  -  linux@mlf.linux.rulez.org
http://mlf2.linux.rulez.org/mailman/listinfo/linux


Re: valtozo helyettesites

2010-03-29 bef zés Gabor Tusnady
Koszonom, mukodik, kis valtoztatassal:

 sed 's,\(.*\)=\(.*\),%s/\\$\1/$2/g,' file1 sed.sh
sed 's,\(.*\)=\(.*\),s/\\$\1/\2/g,' file1 sed.sh

 bash ./sed.sh file2
sed -f sed.sh  file2

ez nekem tokeletes megoldas

meg egyszer koszonom,
tusi

_
linux lista  -  linux@mlf.linux.rulez.org
http://mlf2.linux.rulez.org/mailman/listinfo/linux


Re: valtozo helyettesites

2010-03-29 bef zés Hegedüs Ervin
hello,

 Van egy file-om amiben kulonbozo valtozok vannak definialva:
 
 file1:
 alma=1
 korte=3
 ...
 
 Van egy masik file-om, amibe meg ezek a valtozok valamilyen modon
 szerepelnek:
 
 file2:
 Van $alma db almam es 
 $korte db kortem.
 
 
 Hogyan tudom bash scrittel eloallitani azt a file-t, amiben a file2-ben
 levo valtozokat a file1-ben szereplo ertekekkel helyettesiti?
 
 eredmeny_file:
 Van 1 db almam es
 3 db kortem.

$ cat f1.sh f2.sh
alma=1
korte=3
==%%==
#!/bin/bash

. f1.sh

echo Van $alma db almam es
echo $korte db kortem.
==%%==

$ ./f2.sh 
Van 1 db almam es
3 db kortem.

vagy nem ertek valamit?


a.

_
linux lista  -  linux@mlf.linux.rulez.org
http://mlf2.linux.rulez.org/mailman/listinfo/linux