Hirdetés

2019. március 23., szombat

Gyorskeresés

Hozzászólások

(#1451) MacCaine válasza prucam (#1450) üzenetére


MacCaine
(őstag)

Szerintem ez megoldható cut-al, vagy esetleg awk-al.

| cut -d ">" -f2 | cut -d "<" -f1

(Elvileg így működnie kellene...)

Pee for Houston, pee for Austin, pee for the state my heart got lost in... And shake twice for Texas. :-DDD

(#1452) prucam válasza MacCaine (#1451) üzenetére


prucam
(lelkes újonc)

alakul!

grep '<title>' $d/$i | cut -d ">" -f2 | cut -d "-" -f1 >> $d/title.txt

már csak az kellene, hogy a cím utáni részt is törölni. (kép mellékelve)
Sajnos, azt még nem tudom, hogyan kell szóköz v. sorvéget törölni (cf meg lf v. micsoda) :F

Ez legyen (egyelőre)

A képlet csapdája
Az alku
A halál neve Caliph
A lázadók ökle
Blöff
Viszlát család viszlát szerelem!

[ Szerkesztve ]

(#1453) snowdog válasza prucam (#1452) üzenetére


snowdog
(PH! kedvence)

Az LF az a soremelés vezérlés. Ha kitörlöd, akkor mindent egybe fog írni. Normál szövegnézetben nem jelenik meg. Gondolom valamit bekapcsoltál hogy láthatóvá vált.

Amit alul írtál mintát, az pont ugyan az, ugyanis ott is szerepel az LF (Line Feed, soremelés), csak nem látod. :)

[ Szerkesztve ]

https://hokutya.com/smf_calibre/index.php

(#1454) prucam válasza snowdog (#1453) üzenetére


prucam
(lelkes újonc)

akkor jó! :R

Köszi.

Majd még jelentkezem...

(#1455) bambano válasza prucam (#1452) üzenetére


bambano
(Jómunkásember)

tr-rel mindent lehet törölni.

ha windowsos editorral nézed az eredményt, akkor azért látod az lf-et, mert a windows cr/lf-et várna, de nem az van ott.

lezso6 szerint a user: rossz számtech karmája van | @netik: There is no Internet of Things. There are only many unpatched, vulnerable small computers on the Internet.

(#1456) rt06 válasza bambano (#1455) üzenetére


rt06
(PH! kedvence)

windoze-os editor osszehanyja egy sorba (legalabbis a mezei notepad) ha nem boldogul a crllf helyetti lf-fel
ez inkabb egy lf-et kezelni tudo editor, amiben be lett allitva, hogy jelenitse is meg a sortoreseket

tr amugy minden szokozt torolni fog, nem csak a sor vegen levot, nem?

Politikailag korrekt, valamint munkahely- és gyermekbarát aláírás, amiben egyáltalán nincsen p*na.

(#1457) prucam válasza rt06 (#1456) üzenetére


prucam
(lelkes újonc)

már itt is vagyok. Az editor az a "Geany".

Közben találtam a sorok végén egy szóközt. Törlése így helyes:

grep '<title>' $d/$i | cut -d ">" -f2 | cut -d "-" -f1 | sed 's/[[:space:]]*$//' >> $d/title.txt

üdv

(#1458) bambano válasza rt06 (#1456) üzenetére


bambano
(Jómunkásember)

a tr-t az lf törlésére írtam, de egyébként igen, ha szóközt törölsz vele, az összeset törli.

lezso6 szerint a user: rossz számtech karmája van | @netik: There is no Internet of Things. There are only many unpatched, vulnerable small computers on the Internet.

(#1459) bambano válasza prucam (#1457) üzenetére


bambano
(Jómunkásember)

végülis lehet fork bombát indítani, de minek :)
akkor már sed-del törölnék mindent a sorból, ami ^.*<title>[ ]* és [ ]*</title>*$

lezso6 szerint a user: rossz számtech karmája van | @netik: There is no Internet of Things. There are only many unpatched, vulnerable small computers on the Internet.

(#1460) prucam válasza bambano (#1459) üzenetére


prucam
(lelkes újonc)

akkor már sed-del törölnék mindent a sorból, ami ^.*<title>[ ]* és [ ]*</title>*$

azon az "és" -en vagy tíz percet gondolkodtam, hogy mi lehet.... :F

grep '<title>' | sed ^.*<title>[ ]* | sed [ ]*</title>*$ >> $d/title.txt

van mit tanulni

(#1461) bambano válasza prucam (#1460) üzenetére


bambano
(Jómunkásember)

mondom, nem fork bombázunk :)

a sed másik jó tulajdonsága, hogy a keresés-csere parancsokban nem fixen bedrótozva / jel van, hanem az első karakter a delimiter az s után. ezt akkor érdemes használni, ha vagy a mintában, vagy a cserélendő stringben van (sok) /

tehát:

grep '<title>' |
sed -e 's,^.*<title>[ ]*,,' -e 's,[ ]*</title>.*$,,' >> $d/title.txt

[ Szerkesztve ]

lezso6 szerint a user: rossz számtech karmája van | @netik: There is no Internet of Things. There are only many unpatched, vulnerable small computers on the Internet.

(#1462) prucam válasza bambano (#1461) üzenetére


prucam
(lelkes újonc)

eredmény:

A képlet csapdája - Fórum
Az alku - Fórum
A halál neve Caliph - Fórum
A lázadók ökle - Fórum
Blöff - Fórum
Viszlát család viszlát szerelem! - Fórum

sajnos itt már végképp nem értem :W

(#1463) bambano válasza prucam (#1462) üzenetére


bambano
(Jómunkásember)

nem olvastam vissza az egész topicot, ezért nem értettem, miért a - jelnél vágsz.
a </title> helyett a [ ]*-.*$ kifejezéssel kell akkor vágni.

lezso6 szerint a user: rossz számtech karmája van | @netik: There is no Internet of Things. There are only many unpatched, vulnerable small computers on the Internet.

(#1464) prucam válasza bambano (#1463) üzenetére


prucam
(lelkes újonc)

grep '<title>' $d/$i | sed -e 's,^.*<title>[ ]*,,' -e 's,[ ]*-.*$,,' >> $d/title.txt

Ma próbáltam:

Bajok Harryvel
Az utolsó ítélet
Az utolsó kívánság
Bátorság próba

Tökéletes! Ezt egyedül, nem találtam volna ki. :R

Azt elmondom, talán érdekel valakit mit is csinálok (ill. próbálok ?). Szeretnék egy olyan scriptet írni aminek lényege, hogy egy könyvtárba letölti a *html oldalakat, az infót kiszűri ami kell, másol, hozzáfűz stb. majd a végén *.rar-ba csomagol.
Sajnos, az egyszerűbb dolgokat még megoldom (v. utánézek a neten), de nem sok "lövésem" van a scriptekhez.
Amit egy hét alatt olvastam, az nem igazán elég, tudnátok-e továbbra is segíteni?

üdv

(#1465) PistiSan


PistiSan
(PH! addikt)

Sziasztok!
Nem vagyok egy nagy shell író, remélem kapok segítséget.

Probléma leírása: Adoot egy Raspberry Pi, ha áramszünet van, gyorsabban bootol be mint a router, ezért nem kap ip címet, ezért nem érem el hálózaton. Nincs rá se monitor, se billentyűzet kötve, a scriptnek annyit kellene tudnia, hogy ellenőrzi hogy kapott-e ip címet bekapcsolás után, ha nem, akkor próbáljon egy ip cím lekérést kérni. 5 perc múlva újra ellenőrízze, ha már jó az ip cím, akkor vége a ciklusnak, és kilép a script.

Valami ilyesmire gondltam, de nem akar össze jönni.

#!/bin/bash
ip_kell="inet 192.168.1.102 netmask 255.255.255.0 broadcast 192.168.1.255"
vizsgal=$(ifconfig | grep "inet 192.168")
ip_van=$vizsgal

if [ "$ip_kell" = "$ip_van" ]; then
echo "ip cim megfelelo, kilepek"
else
echo "it cim nem jo, ipcim lekeres"
#dhcpcd eth0
fi

Sajnos az "ip_van" változóban szerepel a megfelelő sor, csak előtte van egy rakás szóköz, amit nem tudom hogyan távolítsak el.
Igazából nekem elég lenne az is, ha csak az ip címet szűrném, tehát a "192.168.1.102"-t, de nem vagyok ennyire benne, hogy össze hozzam.

Tudom még félkész sziten sincs a script, mivel nem szoktam scriptet írni, csak amatrőködöm, gondoltam hát ha segít valaki.
köszi.

OnePlus 3, LineageOS 16. Az emberek 66 százaléka nem tud számolni! Gondoljatok bele, ez majdnem a fele!!

(#1466) bambano válasza PistiSan (#1465) üzenetére


bambano
(Jómunkásember)

szerintem egyszerűbb lenne azt nézned, hogy kaptál-e default route-ot.
pl: netstat -rn | grep 0.0.0.0 és ennek az eredménye szerint van vagy nincs.
de a dhcp kliens daemon elvileg tovább fut, ha nem kaptál rögtön ip címet, akkor is.

lezso6 szerint a user: rossz számtech karmája van | @netik: There is no Internet of Things. There are only many unpatched, vulnerable small computers on the Internet.

(#1467) prucam


prucam
(lelkes újonc)

Sziasztok,

a sorszámozást a "for i in 'seq 11 15'"-el lehet csinálni egy üres file-ben. Hogyan lehet egy nem üres file sorait sorszámozni?

Ezt szeretném:

11 abc
12 bcd
13 gdf
14 dsw
15 dsg

A "cat -n" -el is lehet? Vagy a "cat" mindig 1-től kezd sorszámozni?

(#1468) Jester01 válasza prucam (#1467) üzenetére


Jester01
(PH! kedvence)

seq 11 15 | paste -d\ - in.txt

(A backslash után 2 szóköz van)

Jester

(#1469) prucam válasza Jester01 (#1468) üzenetére


prucam
(lelkes újonc)

köszi :C

(#1470) prucam


prucam
(lelkes újonc)

Sziasztok,

próbálgatom a scriptet. Van benne egy "if", aminek az lenne a célja, hogyha van a letöltött filek között olyan, aminek a nevében "index" szerepel, akkor azt (v. azokat) törölje.

Most volt egy olyan "futása" amiben majdnem 10 is volt, s ezt az üzit kaptam:

./7_down_links: line 19: [: too many arguments

Nem törölt semmit. Mit kellene módosítani?

...
c="index*"
....
if [ -e $c ]; then
rm $c
echo "Az index.html törölve"
else
echo "Nincs index.html nevű file"
fi
....

üdv

(#1471) SteveBeard


SteveBeard
(senior tag)

Sziasztok!

Ebben a scriptben, hogy tudnám megoldani azt, hogy a tiltást több ip címnél is alkalmazni tudjam?
Előre is köszi a segítséget!

#Block URL on certain time for specified IP
LOCAL_IP=192.168.1.150
TIME_START=10:00
TIME_END=23:00
for URL_STRING in $(cat /etc/url_string.txt | awk '{print $1}') ; do
echo Blocking $URL_STRING from $LOCAL_IP at time interval $TIME_START - $TIME_END
iptables -I FORWARD -s $LOCAL_IP -m string --string $URL_STRING --algo bm -m time --weekdays Mon,Tue,Wed,Thu,Fri --timestart $TIME_START --timestop $TIME_END -j DROP
done

Steve

(#1472) dabadab válasza SteveBeard (#1471) üzenetére


dabadab
(Jómunkásember)

Nem igazan ertem a kerdest. Ez mar most igy is tobb IP cimet is tud tiltani, csak fell kell oket sorolni az
etc/url_string.txt file-ban

DRM is theft

(#1473) bambano válasza SteveBeard (#1471) üzenetére


bambano
(Jómunkásember)

ha a kérdés a forrás ip címre vonatkozik, akkor valahogy így:
a LOCAL_IP= sor helyett:
for LOCAL_IP in ip1 ip2 ip3; do

a végére meg egy done.
a szépség kedvéért ilyenkor a TIME_ sorokat kiteheted a ciklus elé.

lezso6 szerint a user: rossz számtech karmája van | @netik: There is no Internet of Things. There are only many unpatched, vulnerable small computers on the Internet.

(#1474) bambano válasza dabadab (#1472) üzenetére


bambano
(Jómunkásember)

a két centért: ez nem ip címeket tilt, hanem stringeket. az url_string.txt-ben sem ip címek kellenek.

lezso6 szerint a user: rossz számtech karmája van | @netik: There is no Internet of Things. There are only many unpatched, vulnerable small computers on the Internet.

(#1475) SteveBeard válasza dabadab (#1472) üzenetére


SteveBeard
(senior tag)

Bocsánat rosszul fogalmaztam :B
Azt gondolom így lett volna helyes a megfogalmazás:
a tiltást több helyi ip címre is alkalmazni tudjam?
De megpróbálom másként:
Az etc/url_string.txt file-ban sorolom fel amit tiltani akarok.
Majd itt adom meg melyik belső ip címre vonatkozzon a tiltás. -> LOCAL_IP=192.168.1.150
De szeretném ugyanezt a tiltást több belső ip címre is alkalmazni. Tehát ne csak a 192.168.1.150-re vonatkozzon, hanem mondjuk a 192.168.1.178-ra is, vagy akár többre is.
Ne haragudjatok a szakszerűtlen megfogalmazásért! :R

bambano

Köszönöm! :R
Kipróbálom..

[ Szerkesztve ]

Steve

(#1476) SteveBeard válasza bambano (#1473) üzenetére


SteveBeard
(senior tag)

Még egyszer köszönöm, jó lett.
Nem gondoltam, hogy ezt többször is lehet egymás után, mindig tanul az ember valamit.

Íme a végeredmény, ami működik, csak azért így, hogy később ne kelljen a tűzfalban szerkesztgetni.
Egyszerűbb a txt fájlt módosítani.

TIME_START=10:00
TIME_END=23:00
for LOCAL_IP in $(cat /etc/controlled_ip.txt | awk '{print $1}'); do
for URL_STRING in $(cat /etc/url_string.txt | awk '{print $1}') ; do
echo Blocking $URL_STRING from $LOCAL_IP at time interval $TIME_START - $TIME_END
iptables -I FORWARD -s $LOCAL_IP -m string --string $URL_STRING --algo bm -m time --weekdays Mon,Tue,Wed,Thu,Fri --timestart $TIME_START --timestop $TIME_END -j DROP
done
done

Jól tudom, hogy linuxnál a txt kiterjesztést akár el is hagyhatom?
Nem túl rég használok linux rendszert...

[ Szerkesztve ]

Steve

(#1477) doc


doc
(PH! nagyúr)

egy masik topicbol, hogy ne azt kelljen szenne offolni :)

Akkor próbálj két dolgot megcsinálni, csak kapásból. Mondtad az ls-t. Akkor írt egy scriptet, ami az ls(!) kimenete alapján csinál valamit (mindegy mint... akár csak írja ki) az összes felsorolt fájl nevével.

ehhez nem kell script, nagyon egyszeruen megoldhatok par karakterbol:

for i in `ls -1`; do echo $i ; done

Vagy, írj egy scriptet, ami csinál valamit (minegy mit), ha neki paraméterként átadott dev-ek bármelyikén 95% alá csökken az üres hely.
ez mar egy hajszallal erdekesebb feladat, mindjart megirom es hozom, csak elotte eszek valamit :)

1N23456.HU - A Veszprém megyei motorkölcsönző

(#1478) dabadab válasza doc (#1477) üzenetére


dabadab
(Jómunkásember)

DEVICES="/dev/sda1 server:/dir/"
MAX_USAGE=5

NEED_TO_PANIC=0
for USAGE in `df $DEVICES | tail -n +2 | tr -s ' ' |cut -f5 -d' ' | tr -d '%'` ; do
if [ $USAGE -gt $MAX_USAGE ] ; then
NEED_TO_PANIC=1
fi
done

if [ $NEED_TO_PANIC -gt 0 ] ; then
echo 'PANIC!!!'
fi

[ Szerkesztve ]

DRM is theft

(#1479) doc válasza doc (#1477) üzenetére


doc
(PH! nagyúr)

nem tul elegans megoldas (nincs parameterellenorzes sem), de mukodik :)

1 #!/bin/sh
2
3 while true; do
4 for dev in $@ ; do
5 if [ `df $dev | grep -o '[0-9]\+%' | grep -o '[0-9]*'` -gt 5 ]; then
6 echo Low space on $dev
7 fi
8 done
9 sleep 1
10 done

MOD: ehh, nem gondoltam volna hogy megeloznek :D mondjuk talaltam jo otletet dabadab scriptjeben, amivel tenyleg szebb lesz (pl. tr -d %)

[ Szerkesztve ]

1N23456.HU - A Veszprém megyei motorkölcsönző

(#1480) ddekany válasza doc (#1477) üzenetére


ddekany
(PH! kedvence)

for i in `ls -1`; do echo $i ; done

Na, igen, aljas módon pont ezért kérdeztem... mert ez hibás. Az for szegény white-space-nél szeletel, nem csak sortörésnél, és ezért ha szóköz van egy fájlnévbe, akkor több fájlnak fogja nézni. Aljas egy csapda, és azért van, mert eléggé trükkös ahogy a dolgok több körben behelyettesítődnek meg értelmezve lesznek. Hát na, ilyenekre gondoltam ott a másik topicban...

(#1481) ddekany válasza doc (#1479) üzenetére


ddekany
(PH! kedvence)

Hát ez meg a másik... de ez meg itt OFF. Na de mindegy, akkor ide írom be, hogy ezért lenne jobb a JSON-al mert akkor csak simán:

df $dev | jget usagePercentage

Ránézel, és látod mit csinál, nem kell megnézni a kimenetet hány oszlop stb, leszedni a %-ot... Amúgy eredetileg df | jfilter device in @$-re is gondoltam, de mondjuk itt pont gány lenne, mert feleslegesen kérdezne le X device-t. (Csak az erdeti feladat valójában az volt, hogy melyik device-t NE nézze, azt adjuk át... de mindegy, innentől látod mire gondoltam a JSON-os kimenet feldolgozás kapcsán. Jó, ott sem elegáns a filter, de... mindegy, látszik mire jó.)

Ja, az ls meg úgy jeach file in `ls` kb. Ott nincs ez a kavar, mert a kimenet ["file név 1", "file név 2"].

[ Szerkesztve ]

(#1482) dabadab válasza ddekany (#1480) üzenetére


dabadab
(Jómunkásember)

"Az for szegény white-space-nél szeletel, nem csak sortörésnél"

Mondjuk ez az IFS-sel allithato, de koncepcionalisan az se segit, mert tulajdonkeppen sortores is lehet a file neveben (ha mondjuk pont ez nem is tul gyakori).

[ Szerkesztve ]

DRM is theft

(#1483) doc válasza ddekany (#1481) üzenetére


doc
(PH! nagyúr)

biztos en vagyok a hulye, de en nem szoktam space-t rakni a filenevbe (sem ekezetes karaktereket, sem hasonlo aljassagokat - szivtam ezzel eleget a windowsos rendszergazdasagom alatt...)
ha ez megis elofordult, akkor a problema valamivel bonyolultabb lesz, de kozel sem megoldhatatlan :)

a peldad meg santit, mert a df nyilvan alapvetoen arra van, hogy EN megnezzem mennyi a szabad hely
tehat ha jsonozni akarsz, akkor meg kell mondani neki hogy "fogalmazzon bonyolultan", majd meg kell keresnem hogy hogyan is hivja o a sajat kimeneteben a usage percentage-t. Mig most egyetlen ranezessel latszik, hogy eleg megkeresnem a "99%" format, addig a te megoldasodnal a json kimenetben turkalva kene megkeresnem a megfelelo nevet.

szerintem a df --jsonoutput $dev | jget usagePercentage nem segit annyit a df $dev | grep -o '[0-9]\+%' | grep -o '[0-9]*' valtozathoz kepest, hogy az alapveto, brutalis munkat megkovetelo architekturalis valtozasokat indokolna (ranezek a df outputjara, majd egyedul a "grep" parancsot hasznalva mar kesz is a megoldas)

Alapvetoen nem rossz az otlet, hogy valamilyen szabvanyos feluleten kommunikaljanak egymassal a programok, de ezt rakenyszeriteni a felhasznaloi interakciora kitalalt programokra nagy butasag, es felesleges is (baromi sok pluszmelot igenyelne, es ha valaki eppen nem, vagy nem jol koveti az elvarast, akkor MINDEN borul)
Egyebkent nem talaltal ki semmi ujat, nezd meg pl. a DBUS-t - csak azt nem akarjak olyan helyeken is eroltetni, ahova nem valo.

1N23456.HU - A Veszprém megyei motorkölcsönző

(#1484) Jester01


Jester01
(PH! kedvence)

Akkor egy bash specifikus, nem fork-bomba jellegű megoldás (bambano kedvéért :DDD ):

#! /bin/bash

MAX_USAGE=5

df "$@" |
while read line
do
pct=${line%%%*}
pct=${pct##* }
if [[ $pct -gt $MAX_USAGE ]]
then
echo PANIC!!!
exit 1
fi
done

[ Szerkesztve ]

Jester

(#1485) doc válasza Jester01 (#1484) üzenetére


doc
(PH! nagyúr)

ha mar igy belendultunk, akkor hozok egy Perl megoldast is:

#!/usr/bin/perl -w
foreach (@ARGV)
{
`df $_` =~ /(\d+)%/;
die "Panic on $_" if ($1 > 5);
}

1N23456.HU - A Veszprém megyei motorkölcsönző

(#1486) ddekany válasza doc (#1483) üzenetére


ddekany
(PH! kedvence)

"biztos en vagyok a hulye, de en nem szoktam space-t rakni a filenevbe"

Legalábbis szerveren én sem... viszont nem is én állítom jellemzően elő a fájlokat, vagy nem olyan program amit én írtam, szóval a fölött nincs kontrollom (mint gondolom másnak sincs).

"a peldad meg santit, mert a df nyilvan alapvetoen arra van, hogy EN megnezzem mennyi a szabad hely"

Az van, hogy ott egy rakás tool a toolboxban, és nyilván azt lenne jó akkor használni scriptekben, szóval ezzel megint nincs mit kezdeni nagyon.

Ha meg a példák után is szerinted a JSON-s (vagy akármilyen gépi fogyasztásra strukturált) kimenettel a bonyolultabb minden, vagy nem érné meg globálisan egy ilyen irány, azzal már nem tudok mit kezdeni...

"ranezek a df outputjara, majd egyedul a "grep" parancsot hasznalva mar kesz is a megoldas"

És ha ránézel a shell scripte, amit nem tegnap írtál, vagy nem te írtad, akkor meg nem látod mit csinál... A forráskódokat általában többször olvassák mint írják.

"Alapvetoen nem rossz az otlet, hogy valamilyen szabvanyos feluleten kommunikaljanak egymassal a programok, de ezt rakenyszeriteni a felhasznaloi interakciora kitalalt programokra nagy butasag"

De hát 2x megírni a programokat, egyszer így, egyszer úgy, meg még nagyobb képtelenség. Hiszen a kétféle kimenet generálásnál a forráskód java része közös lenne.

De szóval mindegy... átadtam amire gondoltam ama másik topicban, aztán kész.

[ Szerkesztve ]

(#1487) dabadab válasza doc (#1483) üzenetére


dabadab
(Jómunkásember)

Az egy dolog, hogy te nem teszel bele, de lehet benne es ez pont olyasmi, amire shellscript iraskor tenyleg figyelni kell.

"a peldad meg santit, mert a df nyilvan alapvetoen arra van, hogy EN megnezzem mennyi a szabad hely"

Nem hiszem, hogy "alapvetoen" erre lenne, hiszen ha shellscriptbol meg akarod nezni, hogy mi a helyzet a szabad hellyel, akkor mast nem nagyon tudsz hasznalni. En egyebkent a magam reszerol orulnek, ha az ilyen fancy tooloknak lenne valami rendes, gepi feldolgozasra alkalmasabb kimenete is (ahol pl. nem vagja le a hosszabb nevu device-ok nevenek a veget, hogy mast ne mondjak, vagy nem localefuggo az, hogy mit ir ki).

DRM is theft

(#1488) doc válasza dabadab (#1487) üzenetére


doc
(PH! nagyúr)

persze, a scriptnek nyilvan robosztusnak kell lennie, ezert is irtam hogy kicsit tobb odafigyelessel, de megoldhato (ha mar mindenaron bash-ben gondolkodunk)

A df azert keszult hogy a user megtudja, mennyi a szabad hely. Persze a rendszer rugalmas felepitesenek es a szoveges kimenetnek koszonethoen akar masik script/program is feldolgozhatja amit a df kiad.

Egyebkent ha egy adott feladat annyira bonyolultta valik hogy pl. bash-ben megvalositani komoly problema, akkor valoszinuleg erdemes inkabb mas kornyezetben megoldani (ld. pl. a lenti df-es peldat Perlben).

A 'gepi feldolgozasra alkalmas kimenet' meg ahogy korabban mar irtam is, nem feltetlenul rossz otlet, de megprobalni rakenyszeriteni minden letezo parancssoros toolra mar az (marpedig ha egyikkel-masikkal mukodik, a tobbivel nem, akkor megette a fene az egeszet).

1N23456.HU - A Veszprém megyei motorkölcsönző

(#1489) bambano válasza doc (#1477) üzenetére


bambano
(Jómunkásember)

"Vagy, írj egy scriptet, ami csinál valamit (minegy mit), ha neki paraméterként átadott dev-ek bármelyikén 95% alá csökken az üres hely.":

#! /bin/bash

echo 'PÁÁÁÁNIIIK!!!!!!!!!'

ennyi.
persze ha figyelembe vesszük azt is, hogy nyilvánvalóan feltolták a vércukorszintjét és azért írt ökörséget, akkor ennél bonyolultabb scrtiptre is szükség lehet. Hint: 95% alá csökken az üres hely részmondatot szerintem nem így akarta megfogalmazni.

lezso6 szerint a user: rossz számtech karmája van | @netik: There is no Internet of Things. There are only many unpatched, vulnerable small computers on the Internet.

(#1490) doc


doc
(PH! nagyúr)

amugy forditsuk meg a dolgot:
ddekany, irj egy olyan parancsot/scriptet az altalad kitalalt szintakszis szerint, ami kilistazza a lefgeljebb 10% szabad helyet tartalmazo particiokat!
(ez jelenleg igy nez(het) ki: df | grep '[09][0-9]%')

1N23456.HU - A Veszprém megyei motorkölcsönző

(#1491) ddekany válasza doc (#1490) üzenetére


ddekany
(PH! kedvence)

Gondolom a felvetés itt az lenne, hogy de mi van, ha a JSON feldolgozások után mégis ki akarom írni a végeredményt a felhasználónak.

Először is, mi van jelenleg. Kitéphetek sorokat egy táblázatból, a fejléc meg ugye elmarad (fejléc nélküli táblázat meg azért elég necces). Aztán a táblázat oszlopok szélessége nem a megjelenített, hanem az összes (kiszűrt) cuccokhoz van igazítva, ez sem a legszebb.

Aztán mit lehetne a JSON (vagy ami) csodával... egy dictionary listából eleve lehet automatikusan táblázatot csinálni, aminek fejléce is van meg minden. Nyilván, ehhez az kell, hogy egy tool alapértelmezett kimeneti formátuma (JSON vagy plain text) jól dőljön el. Ezt megadhatnád kapcsolóban (--json VS --plain, mondjuk), vagy ha nem adod meg, akkor alapértelmezésben --plain lesz, kivéve ha egy speciális pipe szimbólumot adsz meg utána, mondjuk legyen .| vagy akármi, és akkor a --json lenne az alapértelmezés a bal oldalán. Aztán ha még csavarni akarsz azon, hogy hogy nézzen ki a táblázat, akkor erre is könnyű tool-okat írni, tehát pl. sokminden .| jtable egyikOszlopNeve=ígyformázva másikOszlopNeve=amúgyformázva ,és akkor ebbe belepipeolod amit akarsz. Sőt... egy másik érdekes lehetőség, hogy mivel a df ezen fiktív változata belül úgy is eleve JSON-ból (pontosabban annak AST-jéből, de most mindegy) formáztatja az embernek szánt kimenetet is, az is lehetne standard opció, hogy visszavezetem bele amit én kikapartam szűrt meg így-úgy rendezett akármicsinált JSON eredményt, hogy na akkor ezt formázd, mintha csak te termelted volna belül magadnak. Szóval elég sok hatékony dolgot lehet ezzel csinálni... Ha meg tényleg csak plain textet akarsz szűrni, azt is lehet, mert nem j-s kimenetet kérsz és kész...

(#1492) doc válasza ddekany (#1491) üzenetére


doc
(PH! nagyúr)

azzal, hogy nem valaszoltal, eleg egyertelmu valaszt adtal, szoval szerintem lezarhatjuk a temat
az meg hogy minden egyes aprocska toolban legyen oda-vissza iranyu json parser es konverter, haat... mondjuk hogy perverz, es akkor meg enyhen fogalmaztam :)

1N23456.HU - A Veszprém megyei motorkölcsönző

(#1493) ddekany válasza doc (#1492) üzenetére


ddekany
(PH! kedvence)

"azzal, hogy nem valaszoltal"

De akkor mi akart lenni a kérdés? Remélem nem az, hogy hogyan nézem meg, hol nagyobb 90%-nál a foglaltság...

"az meg hogy minden egyes aprocska toolban legyen oda-vissza iranyu json parser es konverter"

Kurva egyszerű lenne pedig a tool író szempontjából, mivel ezek lényegében rendszer funkciók... kb. regisztrálsz két callbackot a toolban, egyik a formázás, másik maga a lényegi feladat elvégzése, és majd az OS(/shell) eldönti, hogy melyiket hívja mikor. Az meg nem tudom leesett-e, hogy ha egy alacsonabb rétegben befektetsz X emberévet, azzal megtakarítasz összességében sokszor X emberévet. Pl. sokkal kevesebb idő megy el tool írásra, mint tool használatra.

[ Szerkesztve ]

(#1494) doc válasza ddekany (#1493) üzenetére


doc
(PH! nagyúr)

akkor leirom meg egyszer: irj egy olyan parancsot/scriptet az altalad kitalalt szintakszis szerint, ami kilistazza a lefgeljebb 10% szabad helyet tartalmazo particiokat

Maga a parsolas hiaba rendszerfunkcio, attol meg bele kell rakni a programba. Nem mondhatod azt a librarynek hogy "itt a json input amit kaptam, csinalj belole helyettem olyat amilyet akarok" (ld: "visszavezetem bele amit én kikapartam szűrt meg így-úgy rendezett akármicsinált JSON eredményt, hogy na akkor ezt formázd, mintha csak te termelted volna belül magadnak")

alacsonabb rétegben befektetsz X emberévet, azzal megtakarítasz összességében sokszor X emberévet
meg mindig nem lattunk semmit ami igazolna hogy ez a vilagmegvalto ujitas valoban megsporolna szamottevo idot :U

1N23456.HU - A Veszprém megyei motorkölcsönző

(#1495) sh4d0w


sh4d0w
(PH! nagyúr)

A válasz: 42

Ha marhasagot irok, vallalom a pofonokat erte a forumon, nem sirok a modiknak.

(#1496) doc válasza sh4d0w (#1495) üzenetére


doc
(PH! nagyúr)

azt mindenki tudja hogy mennyi 6*9 :D

1N23456.HU - A Veszprém megyei motorkölcsönző

(#1497) ddekany válasza doc (#1494) üzenetére


ddekany
(PH! kedvence)

Jó, akkor: df .| jfilter usagePercentage gte 90. Mi van ezzel?

Parsolással meg nem tudom mi bajod, bár tán tesem... Igen, bele kell rakni egy hívás valami shared library funkcióra, ami az egész mechanizmust "meghívja". Soha nem látott komplexitás szoftverfejlesztés területén...

"meg mindig nem lattunk semmit ami igazolna hogy ez a vilagmegvalto ujitas valoban megsporolna szamottevo idot :U"

Visszanézve a két példát, képes vagy ezt így kijelenteni. Valószínűleg direkt szórakozol... vagy van az a bizonyos határtalan dolog is elvégre, nem tudhatom.

(#1498) prucam


prucam
(lelkes újonc)

sziasztok,

hogyan lehet a sortörést (\n) törölni? Pl.:ez van egy doksiban "1a2b3c4d"
a betűk után beszúrok egy sortörést
cat abc | sed -e 's/^.*1a2b3c4d/1a\n2b\n3c\n4d/'

ez lesz:
1a
2b
3c
4d

Most, hogyan tudom visszacsinálni a "1a2b3c4d"-t? :F
Nektek biztos uncsi, de már órák óta keresem a neten, de nem találtam a megoldást. :W

üdv

(#1499) doc válasza prucam (#1498) üzenetére


doc
(PH! nagyúr)

cat abc | tr -d '\n'

1N23456.HU - A Veszprém megyei motorkölcsönző

(#1500) prucam válasza doc (#1499) üzenetére


prucam
(lelkes újonc)

köszi, ma megint tanultam valamit :R

Copyright © 2000-2019 PROHARDVER Informatikai Kft.