Kezdőlap › Fórumok › Programozás › sed + változó nem megy
- This topic has 8 hozzászólás, 3 résztvevő, and was last updated 18 years, 2 months telt el by
chris19.
-
SzerzőBejegyzés
-
2007-05-11-08:20 #2107857
Én inkább így csinálnám (meg szoktam is):
Code:sed „s@$i@$j@g”Túl sok és túl furcsa ott az a sok idézőjel…
2007-05-11-08:20 #2107858Én inkább így csinálnám (meg szoktam is):
Code:sed „s@$i@$j@g”Túl sok és túl furcsa ott az a sok idézőjel…
2007-05-11-08:55 #2107859Helyzet változatlan 🙁
Hogy egyszerűbb legyen bemásolom az egész forrást:
Code:#!/bin/shLSPCI=”./lspci”;
NICLST=”nic.lst”;cucc=`$LSPCI | fgrep „Class 0200″ | cut -f 6 -d ” „`
for i in `cat nic.lst | cut -f 1 -d „|”`; do
echo -n „i=$i „;
j=`fgrep $i nic.lst | cut -f 2 -d „|”`;
echo -n „j=$j „;
cucc=`echo $cucc | sed „s@$i@$j@g”`;
echo „cucc=$cucc”;
doneEz tulajdonképpen egy automatizmusnak készült, ami az lspci és egy lista segítségével
eldönti, hogy egy hálókártyához, milyen modult kell betölteni. Hátha így segít valamelyest.
A sok echo meg azért van, hogy a ciklusban lássam legalább a váltzásokat.
Az lspci meg azért „./lspci” mert az egy herélt verzió pci.ids nélküli, de funkcióját tekintve változatlan.2007-05-11-08:55 #2107860Helyzet változatlan 🙁
Hogy egyszerűbb legyen bemásolom az egész forrást:
Code:#!/bin/shLSPCI=”./lspci”;
NICLST=”nic.lst”;cucc=`$LSPCI | fgrep „Class 0200″ | cut -f 6 -d ” „`
for i in `cat nic.lst | cut -f 1 -d „|”`; do
echo -n „i=$i „;
j=`fgrep $i nic.lst | cut -f 2 -d „|”`;
echo -n „j=$j „;
cucc=`echo $cucc | sed „s@$i@$j@g”`;
echo „cucc=$cucc”;
doneEz tulajdonképpen egy automatizmusnak készült, ami az lspci és egy lista segítségével
eldönti, hogy egy hálókártyához, milyen modult kell betölteni. Hátha így segít valamelyest.
A sok echo meg azért van, hogy a ciklusban lássam legalább a váltzásokat.
Az lspci meg azért „./lspci” mert az egy herélt verzió pci.ids nélküli, de funkcióját tekintve változatlan.2007-05-11-09:45 #2107861Nem tudom. A kimenetet bökd már ide! Nem lehet, hogy néhány „randa” karakter van az i és j változókban (pont, kettőspont, csillag, zárójelek, …)?
(echo: én is így szoktam debuggolni 😉 )
Egyébként nem tudom, tudod-e, de az udev pont ezt megcsinálja helyetted! A /etc/udev* könyvtárakban nézelődj (hogy pontosan hol, a man udev megmondja)!
2007-05-11-09:45 #2107862Nem tudom. A kimenetet bökd már ide! Nem lehet, hogy néhány „randa” karakter van az i és j változókban (pont, kettőspont, csillag, zárójelek, …)?
(echo: én is így szoktam debuggolni 😉 )
Egyébként nem tudom, tudod-e, de az udev pont ezt megcsinálja helyetted! A /etc/udev* könyvtárakban nézelődj (hogy pontosan hol, a man udev megmondja)!
2007-05-11-10:31 #2107863Köszönöm a segítséget. Megoldódott. Ki sem merem mondani, de a bemeneti listában gépeltem el
egy karaktert. Sorry hogy mindenkit ugrasztottam emiatt.Az udev dolgot, meg köszönöm. Sokat tanultam belőle. Ma is érdemes volt felkelni.
2007-05-11-10:31 #2107864Köszönöm a segítséget. Megoldódott. Ki sem merem mondani, de a bemeneti listában gépeltem el
egy karaktert. Sorry hogy mindenkit ugrasztottam emiatt.Az udev dolgot, meg köszönöm. Sokat tanultam belőle. Ma is érdemes volt felkelni.
2009-12-04-19:59 #1886313Sziasztok,
Szerintetek ebben a részletben hol a hiba?
Code:cucc=`echo $cucc | sed ‘s/’$i’/’$j’/g’`Azt akarom elérni, hogy egy sorban kicseréljen az $i változó-nak megfelelő értéket $j változóra.
Ha beírom a konkrét értéket a változók helyére akkor megy.
Erre tudtok valami megvalósítást vagy hogy mi lehet a hiba?A válaszokat előre is köszönöm.
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz