Shell script grep parancs változóval való használata, miért nem működik?
Sziasztok! Az alábbi kis problémám lenne a grep utasítással:
pl:
grep -i -w $i miért nem jó, de ha így használom akkor meg működik:
grep -i -w alma
Hogy lehet változóval működtetni?
Köszönöm szépen előre is a segítséget!
Ennek működnie kell. Az $i után van még file név, vagy pip-olod bele az inputot? Az probléma lehet, ha van szóköz a változóban.
i="alma"
Akkor
grep -i -w $i az ugyan az, mintha azt mondanád, hogy grep -i -w alma. Ha mégis kétségeid vannak, akkor echo grep -i -w $i
Igazából ez lenne a kód de valami miatt hibára fut:
#!/bin/bash
#
echo "Add meg a honapot"
read $i
if [ $# -eq 0 ]
then
echo "Nem adtal argumentumot"
exit
else
file=$1
if [ -f $file ]
then
cat $file | while read row
do
echo $row | grep -i -w $i
done
else
echo "File not found"
fi
fi
A "read $i " nem jo. De osszessegeben a scripted nem valami jo. Teljesen felesleges a file-t loopban beolvasni, amikor a grep pont azt csinalja. De ha pipe-olsz, akkor is lehet cat $file | grep pattern.
Egy masik megjegyzes, hogy nem szerencses keverni a magyar es angol kifejezeseket egy programon bellul, de meg dokumentacioban sem.. En midnenhol, mindig csak angolt hasznalok.
Ha tesztelsz valamit, es a feltetel teljesulese eseten kilepsz, akkor felesleges az else statement, mert minden tovabbi utasitas ugyis csak akkor fog vegrehajtodni, ha a statement hamis.
Itt a script, ahogy en megoldanam: http://pastebin {pont} com/kXrUwWEQ
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!