Hozzászólások
-
SzerzőBejegyzés
-
Hogy hogy sikerül előidézni, nem is az az érdekes, hanem hogy visszacsinálni hogy lehet? A gond, hogy NINCS agetty… meg az apt-get se találja.
Talán a Firefox 2.0 tar.gz-s telepítője volt ha jól emlékszem. De ennél egyszerűbben is elértem már az eredményt: billentyűzetet teszteltem, gondoltam valami olyan kéne ahova mindegy mit írok be, legyen a cat, és elkezdtem nyomogatni a gombokat szép sorban. Aztán megkaptam… van erre gyógyír vagy reboot?
Közben találtam egy megoldást, ami egyelőre működik:
Code:function beolvas () #a konkrét beolvasó algoritmus
{
for ((i=1;i<=xxx;i++))
do
read
sor[$i]="$REPLY"
done
}
# File parameter mode
if [ $# == 1 ]
then
cat "$1" | beolvas
fi
# Filter mode
if [ $# == 0 ]
then
beolvas
fi(Tök más) Tudom hülye kérdés, de hogy kell szűrőt csinálni? Olyat ami fileból olvas vagy ha nem kap filet akkor standard inputról?
Igen, progkör… egyébként pont ez a baj hogy a dátumnál mi van. Mert eddig ahány rendszer annyiféle dátum. Van ahol 2006-10-24 van ahol Oct 24 2006 és így tovább. Pláne ha az időt is neadjisten 10:00PM-nek írja akkor aztán káosz.
Értem. És awk nélkül? (asszem ZH-kban nem nagyon szeretik az awk-t, csak azért, nem kötözködni akarok)
Egyébként az a sed-es sor az eredeti feladat megoldása. Van valami elegánsabb megoldás esetleg? A feladat konkrétan: az ls -l második oszlopa kell (a számos), meg a dátumoszlopok.
Az eddigi megoldás még egyszer:
ls -l |sed ‘s/.{10} *([0-9]+).* [0-9]+ (.*) .*/1 2/’Phű, az első kérdés ok, azt felfogtam. A második: nem annak a sednek kell a kimenetet generálni, csak valamit odaírtam amiben van ‘, de ezt észre is vetted.
Sőt most látom csak, hogy a második is jó, csak a „hülye példában” az echo keze picit meg van kötve karakterügyileg, ha nem védjük le manuálisan. De ha írok egy scriptet ami kifejezetten ilyen eszement karaktereket generál, akkor az első megoldás működik.
Köszönöm szépen.MyCroft wrote:Ebben a formájában az első neked ment? Mert a { } jeleknél kell a
ls -l | sed „s/[0-9]/{1,2}//”A másodiknál ugyanigy a + elé is kell a , mivel be kell kapcsolni a + jelentésmódosító hatását, valamint be kell tenni ” ” közé:
ls -l | sed „s/[0-9]+//”Persze, tényleg, idézőjelben is volt, de hogy a + elé is kell „”, ez meglep. Főleg azért, mert az egrepben szerintem nem kell. Legalábbis nekem ment. Vagy ez minden programban más? Apropó… a [] elé miért nem kell?
Szerk.: még egy kérdés: ha valaminek a kimenete egy ‘ jelet tartalmazó kifejezés, mondjuk
ls -l |sed ‘s/.{10} *([0-9]+).* [0-9]+ (.*) .*/1 2/’
akkor azt egy scriptben hogy tudom mondjuk echoval egy fileba küldeni? Mert csak úgy simán úgy látom, nem megy. Még akkor sem, ha az egészet ‘-ba rakom. A benti ‘-t meg nem tudom levédeni -sel, mert ugye kimenet és asse tudom mi lesz a várható értéke.A következő lenne a kérdésem:
a feladat az, hogy eltüntessük az első számoszlopot az ls -l kimenetéből. Az első működik, a második nem. Van ötletetek, miért?
ls -l|sed s/[0-9]{1,2}//
ls -l|sed s/[0-9]+//
Előre is köszi. -
SzerzőBejegyzés

legutóbbi hsz