Hirdetés
- AMD vs. INTEL vs. NVIDIA
- A popóalávaló: DXRacer Drifting gamer szék tesztje
- OLED TV topic
- Kormányok / autós szimulátorok topikja
- Azonnali alaplapos kérdések órája
- Vezetékes FEJhallgatók
- Fujifilm X
- Több száz játékban kezdi meg karrierjét az FSR Redstone
- Projektor topic
- El sem merte árulni két új SSD-családjának árazását a Kioxia
Új hozzászólás Aktív témák
-
RedHarlow
aktív tag
válasz
Jester01
#2549
üzenetére
Arra gondolsz, hogy a user tageken belül fix ugyan annyi tagnek kell lennie minden usernél? Ez sajnos lehet nem így van, mivel ha 2 notification-t is kapott az ügyfél akkor ha jól rémlik az plusz egy taget jelentett neki. :/
Valahogy így (a kipontozott rész azt akarja jelenteni, hogy sok másik tag):
<User>
...........................
<NotificationID> 4</NotificationID>
<NotificationID> 2</NotificationID>
..............................
</User> -
RedHarlow
aktív tag
Először is nagyon szépen köszönöm a tippeket.
Mi a különbség a parsolás és a csplit között?
Hogy mit is akarok csinálni:
Minden nap létrejön egy xml fájl a szerverem, amiből nekem ki kellene szednem azokat a "usereket" akiknél a notificationid tagek között 4 szerepel. Mivel mi csak velük oldagoznánk. A további felhasználást azonban egyelőre nem kérdeztem meg, hogy valid xml-re lenne-e szükség vagy csak az adatok a fontosak.Ha több száz user van egy xml-ben, a csplit létrehoz több száz fájlt? Én alapjáraton abban reménykedtem, hogy valami grep szerűséggel rá tudok szűrni és az eredményt simán el tudom menteni egy új fájlba.
Hétfő estig valahogy meg kellene oldanom ezt a feladatot.

-
válasz
RedHarlow
#2543
üzenetére
semennyire.
az egyik verzió, hogy ha van kéznél postgresql, akkor belerakod és azzal szétválogatod.a másik verzió, amit egyszerűbb az az, hogy csplit-tel szétdarabolod az xml fájlt annyi darabra, ahány user szekció van benne, a darabokból kiválogatod, ami kell, és utána összerakod újra.
tehát megoldod, hogy az user záró tag egyedül legyen külön sorban (sed-del két parancs), majd csplit-tel szétvágod a '</User>' delimiterrel.
-
-
RedHarlow
aktív tag
Sziasztok,
a segítségeteket szeretném kérni egy olyan shellscript megírásában ami elolvas egy xml-t és azokat az itemeket ahol a <NotificationID> tagek között 4-et talál egy új xml-be másolja. Mennyire bonyolult egy ilyet megírni? Az itemeket a <User></User> tagek választják el egymástól.
Tehát ha
<User>
...........................
<NotificationID> 4
</NotificationID>
..............................
</User> -
ЯΞD
senior tag
Sziasztok!
Szeretném megkérdezni ez milyen script? [link] (ti itt biztosan jobban tudjátok miben íródott)
Ki lehetne egészíteni, hogy ne csak hangjelzést adjon hanem kattintson is bele megjelenő figurába? -
Sonja
nagyúr
Van ~300db jpg/png file-om. Mindegyik 3168x2480-as felbontású. Hogy lehetne megoldani, hogy kettébe vágja, és két külön png/jpg file-ba tegye?
Tehát pl. a 3168x2480-as felbontású a.jpg fileból csináljon két 1584x2480-as a1.jpg és a2.jpg-t! -
-
tjsz
senior tag
Sziasztok!
Azt szeretném megoldani, hogy a script-ben használt változók értékét egy log file-ba szeretném kiírni, de csak akkor ha bármelyik értéke változott.
A teszt script:
info1="yes"
info2="no"
file_log=/tmp/script.log
info_curr=""
info_prev=""
function script_log
{
echo "`date +%T` - PID:$$ - $*" >> "$file_log"
info_curr="Info1: $info1, info2: $info2"
if [ "$info_curr" != "$info_prev" ]; then
$info_prev=$info_curr
echo "`date +%T` - PID:$$ - $info_curr" >> "$file_log"
fi
}
script_log Sor1
info1="no"
script_log Sor2A script.log file létrejön, de a script futtatásakor hibát kapok:
root@Pc:/tmp# teszt2.sh
teszt2.sh: line 22: =Info1:: not found
teszt2.sh: line 25: =Info1:: not foundEnnek mi az oka?
Előre is köszönöm! -
-
-
-
válasz
Fecogame
#2522
üzenetére
Sima különbséggel:
#!/bin/bash
PREV=0
MAXDIFF=0
cat x.txt | ( while read NUM ; do
DIFF=$(($NUM-$PREV))
if [ $DIFF -gt $MAXDIFF ] ; then
echo $PREV $NUM $DIFF
MAXDIFF=$DIFF
fi
PREV=$NUM
done ) | tail -1A százalék macerásabb, mivel a bash csak integerekkel tud számolni, ott meg kell hívni valami külső programot számolni (dc, bc, akármi) illetve figyelni, hogy ne akarj nullával osztani.
-
KrAt
veterán
válasz
Fecogame
#2522
üzenetére
Egyszer csinaltam hasonlot, elkezdenem cut -d " " -f1 majd f2 stbstb parameterekkel szetszedni a szamokat, valtozokba berakni az egymas melletti szamokat, majd megszamolni a kulonbseget, es ha az nagyobb, mint az elozo kulonbseg, akkor azt is eltarolni egy valtozoban, ha nem, akkor tovabb az f2 f3, majd f3 f4, stbstb..
Biztos van szebb megoldas is, varjunk meg a tobbiekre

-
Van egy számsorom, pl.
2 3 4 5 10 9 7 8 10
Szeretném a legnagyobb ugrást/kilengést megtalálni, vagyis a fenti esetben a két egymás mellett lévő 5 és 10 értéket. A számok egy fájlban vannak, minden sorban egy szám.
A még jobb megoldás lenne ezt százalékos különbséggel megnézni :)
Logikailag ezt hogy lehetne kivitelezni?
-
Draken
őstag
Sziasztok!
Tudtok esetleg ajánlani olyan magyar irományt, aminek tanulmányozásával jobban átlátom/megértem a shell script világát? Másodsorban pedig bármilyen gyakorló oldalt is szívesen fogadok. Köszönöm! -
moltam
tag
Sziasztok!
Egy Armbian Bustert futtató Orange Pi One-on megoldottam, ha megnyomok egy nyomógombot, lefut egy sh script. A nyomógomb feladata lenne, hogy egy szolgáltatást leállítson és elindítson. Ezt 2 nyomógombbal meg tudnám oldani, az egyik olyan scriptet hívna elő, amiben systemctl start xy van, a másikban pedig systemctl stop xy.
Mindenképpen egy gombbal szeretném megoldani. A lényeg, hogy legyen egy sh script, amit ha futtatok megnézi, hogy fut-e xy service, ha fut akkor leállítja, ha nem akkor elindítja.
Sajnos nem tudok még önállóan ilyesmit megírni, és példát sem találtam. Van valakinek ötlete? -
válasz
Fecogame
#2513
üzenetére
Valamiért nem működik, invalid context length argumenthibát ad a grep.
Azért, mert az iptablesben lévő -A-ról azt gondlja, hogy az neki szól

Erre az az általános megoldás, hogy az ember mond neki egy duplakötőjelet, onnan tudják a programok, hogy a továbbiakban nem lesz kötőjellel kezdődő paraméterük.grep -F -- "iptables -A INPUT -m state --state INVALID -j DROP"
Sajnos nem, break nélkül újra megkérdezi
De, a ;; breakeli a switchet, csak egyrészt bashban a switchet nem kell (és nem is lehet) expliciten breakelni, másrészt meg te ott a do-t akarod breakelni

Nem értem pontosan mire gondolsz itt.
Azt, hogy az ilyen scripteket nem a root home-jába illik telepíteni, hanm az /usr/local/sbin-be.
-
bhonti
aktív tag
Mondom: fgrep "akármi" hely
Ekkor nem mintaként tekint az "akármi" kifejezésre, hanem mint szót keresi meg... -
Váó, köszönöm a sok segítséget
Sorban:Menü rendszer átvariálva, az észrevételek teljesen jogosak
Most már változókkal dolgozik a script. Teljesen abban voltam, hogy a case-ból kilépve elfelejti a belsejében definiált változókat.A cron bejegyzés immáron az /etc/cron.d/ mappába kerül, és onnan is törli ki a fájlt uninstall-nál. Ésszerűbb, egyszerűbb, biztonságosabb. Jó észrevétel
a dirname $0/basename $0 az, szerintem, $0.
Így van. Javítva
Tök jó lenne, ha ezt paranccsorból is meg lehetne adni, mert mondjuk .deb csomagot így elég nehéz csinálni belőle
Erre holnap ránézek.ja, és uninstallkor ezeket szerintem illene kiszedni az iptablesből.
Jogos. Ezt is holnap megnézem hogyan lehet egyszerűen kivitelezni.és ha jól emlékszem, case-hez shellben nem kell külön break, a ;; megoldja.
Sajnos nem, break nélkül újra megkérdezi, hogy mit szeretnék választani az étlapról és nem ugrik tovább.A harmadik sorhoz: ennek egyrészt az /usr/local/sbin-ben lenne a helye...
Nem értem pontosan mire gondolsz itt.a grepnek van egy -F kapcsolója...
Valamiért nem működik,invalid context length argumenthibát ad a grep. -
válasz
Fecogame
#2504
üzenetére
Az iptableses részhez:
a grepnek van egy -F kapcsolója, ami kikapcsolja a regexpezést és akkor nem kellenek a backslashek, így aztán a komplett utasítást belerakhatod egy változóba, nem kell kétszer leírnod (mert előbb-utóbb biztos elírod az egyiket
)szerk: ja, és uninstallkor ezeket szerintem illene kiszedni az iptablesből.
-
válasz
Fecogame
#2504
üzenetére
A /var/spool/cron/crontabs/root első sora nálam (meg valószínűleg kb. minden unixon
) ez:# DO NOT EDIT THIS FILE - edit the master and reinstall.
Ha crontabot akarsz installálni, akkor azt inkább úgy csináld, hogy rakj egy file-t az /etc/cron.d/-be. Nagyon ősi Linuxokon nem fog menni, de azokon lehet, hogy iptables sincs

-
válasz
Fecogame
#2504
üzenetére
ez a 101-102 sorok se tetszenek...
a dirname $0/basename $0 az, szerintem, $0.
de az idézőjeleket úgy nem lehet egymásba ágyazni szerintem.szerk: ha matatod a fájlrendszerben a root crontabját, akkor a cron-t illene újraindítani. de, szerintem nem így kellene matatni, hanem a /etc/cron.d alá berakni egy saját crontabot és azt törölni uninstallkor.
-
válasz
Fecogame
#2504
üzenetére
Az opcióválasztáshoz:
1. Tök jó lenne, ha ezt paranccsorból is meg lehetne adni, mert mondjuk .deb csomagot így elég nehéz csinálni belőle

2. Ez a file-os megoldás elég... khm
Egyrészt nem biztos, hogy működik (pl. mi van, ha read only fs-en van?), meg az se jó, hogy szó nélkül töröl file-okat, ráadásul olyanokat, amiknek nincs túl egyedi neve (ha mindenképpen file-t akarsz használni, akkor érdemes egyrészt a /tmp-ben csinálni, másrészt a filenévhez hozzácsapni legalább a PID-et, de akára hostname-et is - pl. /tmp/akarmi.$HOSTNAME.$$ )Viszont erre nincs szükség, egyszerűen rakd bele egy változóba:
PS3='Please enter your choice: '
options=("Install" "Uninstall" "Verify" "Quit")
select opt in "${options[@]}"
do
case $opt in
"Install")
SEL=1 && break
;;
"Uninstall")
SEL=2 && break
;;
"Verify")
SEL=3 && break
;;
"Quit")
break
;;
*) echo "invalid option $REPLY";;
esac
done -
-
-
Első GitHub projektem, kérnék építő jellegű kritikát, a topik témájából fakadóan főleg a kódra nézve

-
klambi
addikt
Szevasztok!
Egyszerű kérésem lenne: grep-el keresek fileokban egy részletet, és ki szeretném exportálni ezeket egy külön text fileba külön elérésre, de az eredeti file nevével. export nem gond ha egy fileba kell irányítani, de külön külön más más névvel már bajban vagyok

Új hozzászólás Aktív témák
- Villanyszerelés
- Visszaengedi Kínába az NVIDIA H200-at a Trump-adminisztráció
- Örömkönnyek és üres kezek a TriFold startjánál
- Arc Raiders
- Counter-Strike: Global Offensive (CS:GO) / Counter-Strike 2 (CS2)
- A fociról könnyedén, egy baráti társaságban
- Diablo IV
- Suzuki topik
- Nintendo Switch 2
- Víz- gáz- és fűtésszerelés
- További aktív témák...
- Windows 10/11 Home/Pro , Office 2024 kulcsok
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- 10 Darab ÚJ PC Játékszoftver
- Játékkulcsok : ! Legjobb Áron ! : PC Steam, EA App, Ubisoft, Windows és egyéb játékok : (12.12.)
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- Samsung Galaxy S25+ / 12/256GB / Kártyafüggetlen / Gyári Garancia 2028.07.11-ig
- 5G LTE! Microsoft Surface Pro 8 i7-1185G7 16GB 512GB 1 év garancia
- ÁRGARANCIA! Épített KomPhone Ultra 7 265KF 32/64GB RAM RTX 5080 16GB GAMER PC termékbeszámítással
- Eladó Honor X7a 4/128GB Kék / 12 hónap jótállással!
- Acer Nitro 16 - 16" WQXGA 165Hz - Ryzen 7 8845HS - 16GB - 1TB - Win11 - RTX 4070 - Garancia
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: ATW Internet Kft.
Város: Budapest

Köszönöm! 
Tehát pl. a 3168x2480-as felbontású a.jpg fileból csináljon két 1584x2480-as a1.jpg és a2.jpg-t!







