Új hozzászólás Aktív témák
-
Rimuru
veterán
Hogy lehet egy szkriptben "elrejteni" egy fájlt? Tehát egy nagyobb fájl tartalmazzon mindent, a részeket utána kirakom pl.: /tmp-be és onnan dolgozik tovább vele.
-
Jester01
veterán
find + ciklus
#!/bin/bash
actday=$(date +"%u")
acthour=$(date +"%k")
find /root/autoscan/objects -type f -name \*.txt |
while read file
do
fileday=$(sed -n 3p "$file")
filehour=$(sed -n 5p "$file")
if [ $actday -eq $fileday ]
then
echo "egyezik"
# tovabbi tennivalok itt
fi
done -
Nefri
csendes tag
Sziasztok!
A probléma a következő: Van egy fájl szerkezetem, amiben elszórva vannak txt fájlok. Minden txt fájl tartalmaz egy időpontot(hányadik nap a héten / hányadik óra) és egy olyan keresést szeretnék végrehajtani, hogy a futtatás pillanatában megvizsgálom, hogy épp a hét hányadik napja van, hányadik órában vagyunk, majd végig menni az összes txt-n és ha egyezés van az ottani időponttal, akkor végrehajtani néhány parancsot a txt-ben szereplő egyéb paraméterek alapján, majd folytatni a keresést, hogy van-e még időpont egyezés a többi txt-ben.
Ha csak egy txt van a fájlszerkezetben akkor sikerült az alábbi kóddal működtetni:
#!/bin/bash
actday=$(date +"%u")
acthour=$(date +"%k")
fileday=$(cat /root/autoscan/objects/*/*/*.txt | sed -n '3p')
filehour=$(cat /root/autoscan/objects/*/*/*.txt | sed -n '5p')
if [ $actday -eq $fileday ]
then
echo "egyezik"
fiAzonban nem tudom, több találat esetén, hogyan lehet egy találatot követően felfüggeszteni a keresést, megcsinálni a txt alapján a szükséges műveleteket, majd ha megvagyok tovább folytatni a keresést.
Minden javaslatot hálásan köszönök!
-
Jim-Y
veterán
Sziasztok!
Ide is belinkelem, hátha itt is tudnak okosat mondani: http://prohardver.hu/tema/linux_abszolut_kezdoknek/hsz_27514-27514.html
Üdv, köszi
-
BoB
veterán
Azt elnéztem, csak adott könyvtárban működik. Mindenképpen kell a log mappa vagy elég ha csak a fájlok vannak belőle? (értsd: a zip fájlban egyből a fájlok vannak mindenféle mappa nélkül)
Mert akkor így:
/usr/bin/zip -rj /home/pi/test/logs_$HOSTNAME.zip /home/pi/test/logs/* -
Sleed
aktív tag
válasz bob.zxr hozzászólására:
egyik sem működik sajnosaz elsőre az output:
/home/pi/test/logs_..zipszerk: ez működik, elgépeltem, bocsi
a második abból a könyvtárból szépen lefut, nem is rakja bele a felesleges könyvtárakat, de ha máshonnan akarom futtatni akkor ezt dobja:
zip warning: name not matched: ./logs
zip error: Nothing to do! (try: zip -r -b /home/pi/test/ /home/pi/test/logs_device00.zip . -i ./logs) -
buherton
őstag
Ezt most találtam:
:(){ :|: & };:
-
Speeedfire
félisten
-
bambano
titán
válasz
Speeedfire #1784 üzenetére
még mindig azt tartom legegyszerűbbnek, hogy legyártod az apt konfigját két példányban, és írsz egy scriptet, ami cseréli. A scriptet az ip-up.d könyvtárba kell tenni, akkor minden esetben végrehajtódik, amikor felhúzza az interfészt.
ha megmondod, mi a különbség a céges net és az otthoni között, akkor meg lehet faragni a scriptet, ami meg tudja különböztetni a kettőt.
-
Speeedfire
félisten
Sziasztok!
Felmerült egy olyan "igény", hogy dinamikusan tudjam állitani a hálózat proxy részét. Cégen belül proxy-t kell használni, de amikor nincs rá szükségem, akkor ki kell kapcsolni. Ezt ugye meg csak úgy tudom, ha kikommtezem a környezeti változót és újrainditom a gépet. Ehhez keresnék megoldást. Jelenleg saját proxy-val van megoldva.
Innen indult az egész.#200012 bambano:
a /etc/profile-t minden login shell végrehajtja, tehát azt látni fogja mindenki, aktuális helyzet szerint.
Nekem elég ha a saját user és a root használja ezeket a proxy beállitásokat, a legnagyobb bajom ezzel ugye a ki-belépés. Minden programot bezárni, kilépni, belépni. Főleg ha melózok épp valamin.
Ha a saját helyemen ülök, akkor kell a proxy, de ha már wifi-zek, akkor nincs rá szükség, mert olyankor inkább csak jegyzetelek, vagy neten mutatom be, mit csináltam.Olyan lenne a legjobb, ami dinamikusan állitja a proxy változókat. Legyen akár valami tigger, hálózati ip alapján, vagy akár egy parancsikon az asztalon.
-
prucam
tag
Végül is a "tr"-es megoldás lett:
cat file | tr '\n' '\t'
Egyébb:
- a "sleep" parancs mire jó, mikor használjuk?
- az awk-s parancsnál fent (#1771) beillesztettem script-be, s az lenne a kérdésem, hogy nem lehet-e azt megformázni; sor elejére igazítani (v. egy sorba az egész)?
-
Jester01
veterán
Vagy paste -s
-
prucam
tag
válasz
Jester01 #1771 üzenetére
Jester, köszi szépen az awk-s megoldást. Szuper!
Van egy file, amiben egy oszlopban vannak a számok. Valahogy így:
0.2121
1.21
3.423
1.23Nekem így kellene:
0.2121 1.21 3.423 1.23
Egy sorba, s az elválasztás köztük egy tabulátor legyen.
Azért próbálkoztam....pl.:
sed -i 's/\n/\t/' file
-
Lacpac
őstag
Sziasztok,
Indítottam egy kis házi szerverecskét ubuntu alapokon.
Regisztráltam egy dns szerverre, és most ddclient végzi az ip frissítését.
Az vele a gondom, hogy a ddclient 300s-ként (5 perc) végzi ezt el.
Nekem a 100%-os elérhetőség lenne a cél. Volt rá példa hogy 4 óra alatt 3× váltott ip-t a szolgáltató.
Lehet olyan script-et írni amivel pingelem a dns címem 5s-ként, majd ha nem érkezik rá válasz 3s alatt akkor restartolja a ddclientet?
Restartkor ugye rögtön frissíti az ip-t.Ha lehet akkor tudna benne segíteni valaki? Kezdő vagyok linuxból.
Köszi előre is a válaszokat.
-
prucam
tag
Sziasztok,
ptc-zek s szeretném a reff-ek átlagát kiszámolni. Odáig eljutottam, hogy a .htm-ből megkapjam a sorokat:
Egy részlet, hogy néz ki:
....
17 [R781153008 ] 2014/05/27 at 22 days and 2014/05/ 7 1.000 [recycle] [info-r] [ ]
00:31 21:14 28
18 [R3325737139 ] 2014/05/27 at 22 days and Yesterday 7 1.000 [recycle] [info-r] [ ]
00:31 21:14
19 [R2656436594 ] 2014/05/27 at 22 days and 2014/05/ 4 0.571 [recycle] [info-r] [ ]
00:31 21:14 27
20 [R1966968045 ] 2014/05/23 at 17 days and 2014/05/ 2 0.182 [recycle] [info-r] [ ]A tizedesjegyű-számokat szeretném szűrni, de elakadtam:
grep -o [0-9].[0-9][0-9][0-9]
eredmény:
1.000
33257
37139
1.000
26564
36594
0.571
19669
68045
0.182 -
-
bambano
titán
válasz
csiki_92 #1760 üzenetére
ezt azért csinálja, mert minden hónapban lehet 12.-e. ezt úgy tudod megjavítani, ha a uniq -c elé közvetlenül is teszel egy sort-ot.
szerk: "Gondolom én, hogy attól még, hogy én csak a napokat látom, attól még a dátum levágott részét is figyelembe veszi a csoportok létrehozásánál.": nem, nem veheti figyelembe, mert az nincs ott.
az ok az, hogy a uniq csak akkor tudja korrekten összeszámolni a sorokat, ha azok egybefüggően, egymás után vannak. viszont:
dátum levágott dátum
1988.05.12 12
1988.05.20 20
1988.06.12 12ez lesz belőle, ezt a uniq nem tudja összeszámolni, mert nem tárolja el az egész fájlt, csak az éppen feldolgozott plusz az előtte levő sort.
-
-
Jester01
veterán
Ha már shell script topik akkor itt a szokásos megoldásom is
#! /bin/bash
declare -A stats
maxcount=0
while read line
do
tmp=${line#*,*,}
if [ "${tmp:0:2}" != "úr" ]
then
continue
fi
tmp=${tmp#*.*.}
day=${tmp:0:2}
if [ -z "${stats[$day]}" ]
then
count=1
else
count=$((stats[$day] + 1))
fi
stats[$day]=$count
if [[ $count > $maxcount ]]
then
maxcount=$count
maxday=$day
fi
done
echo "$maxday ($maxcount)" -
csiki_92
aktív tag
válasz
bambano #1755 üzenetére
Na az alábbi paranccsal sikerült eljutnom odáig, hogy levágja az évet és a hónapot:
sort -t, -rk5 adat | awk -F, '($3=="úr") { print substr($4,9,3) }' | uniq -c | awk ' { print $2"\t"$1 }' | sortViszont még mindig van két problémám, az egyik, hogy ettől függetlenül még mindig teljes dátum szerint csoportosít, nem napok szerint, a másik, pedig, hogy dátum szerint rendezi sorba, és nem darabszám szerint.
-
csiki_92
aktív tag
Sziasztok!
Olyan kérdésem lenne, hogy adott adat nevű fájl, melyben az alábbi minta szerint vannak adatok:
1.,Balogh Elvira,hölgy,1988.06.02.,Sárospatak,85000A következő a feladat: Melyik napon született a legtöbb úr? Listázzuk az egyes napok sorszámát, és az akkor született urak számát, darabszám szerint növekvő sorrendben.
A megoldásom a következő:
sort -t, -rk5 adat | awk -F, '($3=="úr") { print $4 }' | uniq -c | awk ' { print $2"\t"$1 }' | sortNos, ezzel az a baj, hogy a teljes évszámot kategorizálja, és kiírja például, hogy 1965.08.25-én 1 úr született. Nekem pedig csak napokra lebontva kellene a megoldás. Ha valaki tudna segíteni benne, akkor azt nagyon megköszönném!
-
Dj Sügi
őstag
Aki otthon van a reguláris kifejezésekben és szívesen segítene az dobjon már egy privit nekem.
Köszönöm! -
-
prucam
tag
Sziasztok,
előzmény #1740 hsz.
Most a file második sorába kellene beszúrni a dátumot. Azt is áruljátok el:
- hogyan lehet az első sorba
- valamint x. sorba.üdv
-
44kos
csendes tag
Sziasztok!
Shell scriptben hogy tudok egy változó értékéül adni törtszámot úgy, hogy azt egy osztás eredményéül kaptam?
pl
echo 5 / 2 | bc -l -> ez kiírja hogy 2.500000Nekem viszont olyat szeretnék, hogy pl s=5 / 2, és ezt ne egészosztásnak vegye, hanem törtszámot adjon végeredményül.
s=`expr 5 / 2 | bc -l` -el próbálkoztam eddit, de az 2-t ad...
Aki tud ebben nekem segíteni, az kérem segítsen, köszi!
-
prucam
tag
Sziasztok,
van egy file, aminek az utolsó előtti sorába kellene beszúrni a mai dátumot.
változó:
v=`date +%Y%m%d`
Hogyan, mivel? Talán sed...
-
snowdog
veterán
Sziasztok!
Az egyik scriptemben irányt szeretnék számolni. Az alapképlet így néz ki: Decimal value = ((180+A)*PI)/0.180
Az eredmény egy decimális szám, az "A" az irány fokban.Ez működik, de most visszafelé szeretnék számolni, vagyis a decimális számot ismerem, és az "A" értékét szeretném eredményül kapni. A = ?
Köszönöm a segítséget.
-
ngabor2
nagyúr
válasz
ngabor2 #1732 üzenetére
Alakulok, alakulok, de még messze vagyok még.
A pontos megoldássan beírt "Szociális Szövetkezet"-eket gond nélkül megtalálja a lenti szkript.
Viszont a hasonlók kigyűjtését legfeljebb elméletileg bírtam végigvinni, vagy úgy se.
Első részfeladathoz egy kis segítség magamnak:
#!/bin/bash
string="elem1 elem2 elem3"
hossz=$(echo $string| wc -w)
for i in $(seq $hossz)
do
echo $(echo $string | cut -d" " -f $i)
doneEz egy többszavas sorból egyenként adja vissza a szavakat (biztos van rá alapból egyszerűbb módszer
). Az utolsó előtti sor első echo-ja helyett mehetne az összehasonlítás. Ezt kell a Jester által írt progival összehasonlítani 4 szóval (mert a 2 szó lehet végig nagybetűvel is). Ahol egy sorban 2 db 0 van, azt a korábbi szkript is megtalálja. Ha egy 0 van benne, a többi nagy szám, az nekünk nem kell. Ha viszont van 2 kis szám (pl. 5 alatti, az egyik akár 0 is lehet), akkor az a szakasz kell.
Ami nekem problémát okoz, hogy egyrészt oldalanként 50 darab 5 (pontosabban 7) soros szakasz 3. sorának egy részletét kell vizsgálni, és ha ott van 2 hasonló, de nem azonos szó, akkor azt a szakaszt változatlanul át kell másolni egy fájlba. És ez meg sok-sok oldalon keresztül...
Egy másik fórumtárstól kaptam egy awk szkriptet, amivel a html-ből kiszedi a sorokat:
awk '\
BEGIN { IGNORECASE = 1; output = ""; }\
/<td width="15" align="right" class="szoveg">/ { match($0, ">(.*?)<", a); output = a[1]; }
/<td width="60%" class="szoveg" align="left">/ { match($0, ">(.*?)<", a); output = output "; " a[1]; }
/<td align="center" class="szoveg">/ { match($0, ">(.*?)<", a); output = output "; " a[1]; }
/<td align="center" class="szoveg" width="120">/ { match($0, ">(.*?)<", a); output = output "; " a[1]; }
/--/ { match(output, ".*szociális.*szövetkez[^<]*", b); if ( b[0] != "" ) print b[0]; }
' szoc.txtEbből igazából csak a /<td width="60% kezdetű részre, meg a körítésre van szükség, és az ebben levő szavakat kell vizsgálni. Viszont hogy határozatlan mennyiségű számból hogyan lehet megállapítani, hogy van-e benne 2 db 5 alatti, az már nem az én súlycsoportom... meg úgy egy az egyben az egész.
IMHO lassan eljut ez a projekt arra a szintre, hogy nem egy szkript a legkézenfekvőbb megoldás erre.
-
Rickazoid
addikt
Háromból egyszer, amikor nyitok egy terminál emulátort, ezt az üzenetet kapom:
bash: /etc/bash.bashrc: Engedély megtagadva.. bár hibát látszólag nem okoz, de azért zavaró.
A jogosultságok rendben vannak, 755. A /etc mappának szintén. -
ngabor2
nagyúr
Felmerült még egy kérdés a szkripttel kapcsolatban: win alól futtathatóvá lehet valahogy tenni? A cygwin-t nézegetem, de ahogy látom, nem ez lesz a barátom. Ezen kívül win alá kellene a wget és a grep, nomeg a seq se árthat. wget az van, használtam is. De a másik kettő...
Az időközben teljesen átszabott szkript amúgy így néz ki:
#!/bin/bash
echo -n "Közlöny száma: "
read -e szam
echo -n "Oldalak száma: "
read -e oldal
cp /home/ngabor2/kozlony/fej.html /home/ngabor2/Asztal/szoc$szam.html
for i in $(seq 0 $oldal);
do
wget -np http://cegkozlony.hu/index.php?pagename=atkual\&oldal=$i\&friss_ev=2014\&friss_szam=$szam -O - | grep szociális -i -B 2 -A 3 -h | grep szövetkezet -i -B 2 -A 3 -h >> /home/ngabor2/Asztal/szoc$szam.html
doneA fej.html egyszerűen egy táblázat fejléc, amit az eredeti oldal is használ, meg egy új sor: <base href="http://cegkozlony.hu"> .
Lényegtelen mellékkérdés: miért kerül bele a végeredménybe jópár "--" elválasztó karakter, és hogyan lehet kiszedni? Tippre a grep teszi bele.
-
ngabor2
nagyúr
-
Jester01
veterán
válasz
ngabor2 #1726 üzenetére
Összedobtam egy kis progit, de nem shell script
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <limits.h>
#include <stdbool.h>
#define ELEMENT char
#define EQUAL(a, b) ((a) == (b))
#define OFFSET int
#define NOTE_DELETE(ctx, xoff) note_delete(ctx, xoff)
#define NOTE_INSERT(ctx, xoff) note_insert(ctx, xoff)
#define EXTRA_CONTEXT_FIELDS
#undef MIN
#undef MAX
#define MIN(a, b) ((a) <= (b) ? (a) : (b))
#define MAX(a, b) ((a) >= (b) ? (a) : (b))
struct context;
static void note_delete(struct context* ctxt, int xoff);
static void note_insert(struct context* ctxt, int xoff);
#include "diffseq.h"
static int cost = 0;
static void note_delete(struct context* ctxt, int xoff)
{
cost += 1;
}
static void note_insert(struct context* ctxt, int xoff)
{
cost += 1;
}
int main(int argc, char** argv)
{
struct context ctxt;
int len1 = strlen(argv[1]);
int len2 = strlen(argv[2]);
int diags = len1 + len2 + 3;
ctxt.fdiag = calloc(2 * diags, sizeof(*ctxt.fdiag));
ctxt.bdiag = ctxt.fdiag + diags;
ctxt.fdiag += len2 + 1;
ctxt.bdiag += len2 + 1;
ctxt.too_expensive = len1 + len2;
ctxt.xvec = argv[1];
ctxt.yvec = argv[2];
compareseq(0, strlen(ctxt.xvec), 0, strlen(ctxt.yvec), false, &ctxt);
printf("%d\n", cost);
return (cost == 0) ? 0 : 1;
}A diffutils-ból kell hozzá a diffseq.h fájl.
$ ./a.out ablak ablak
0
$ ./a.out ablak albak
2
$ ./a.out ablak alak
1[ Módosította: ngabor2 ]
-
ngabor2
nagyúr
Újabb, életszerű és nehéznek tűnő probléma: elírt szavak keresése. Az előző feladathoz kapcsolódik. A szkript megtalálja a szövetkezet szót, de pl. ha ki van belőle hagyva egy betű, vagy fel van cserélve, akkor már nem. Keresgélek programokat, amit be tudnék illeszteni, és a szavakat egyenként be lehetne neki adni, hogy nézze meg: azonos, hasonló, vagy semmi közük egymáshoz. A hasonlót egy külön helyre gyűjtené, az azonossal meg ugyan úgy bánna, mint eddig. Egyelőre eddig jutottam, külön álló programot még nem találtam.
(Ahhoz képest, hogy egy egyszerű szűrő-szkriptnek indult, már elég sok dolgot kellene tudnia
)
-
ngabor2
nagyúr
Egy gyűjtőmunkát szeretnék egy szkripttel meggyorsítani. Részben már meg is van, kaptam igen hathatós segítséget.
Most viszont egy php-s részt kellene működőképesen leszedni. Van a Cégközlöny, ahol folyamatosan jelennek meg az új cégek. Sok-sok sorból állnak, 50-esével rendezve. Ami nekem kell, azoknak a nevét, sorszámát kigyűjtöttem, sőt a dowload.php-hoz tartozó paraméterek is rendelkezésre állnak (így lehet, hogy zavaros, de ha megnézitek az oldalt, akkor érthető lesz).
Tehát például egy jellemző táblázatsor így néz ki:
<tr>
<td width="15" align="right" class="szoveg">1.</td>
<td width="60%" class="szoveg" align="left">cégnév</td>
<td align="center" class="szoveg">xx-xx-xxxxxxx</td>
<td align="center" class="szoveg" width="120">Új társaságok bejegyzése<br></td>
<td align="center" class="szoveg" valign="middle" width="50"><form method="post" action="download.php" target="_blank" style="margin:0px;"><input type="hidden" name="ajdi" value="7167785" /><input type="submit" value="letöltés" name="subbut" class="szoveg" /></form></td>
</tr>Az utolsó sorban szerepel, hogy melyik letöltőoldal nyíljon meg. Viszont ez érthető módon csak az eredeti oldalba beépítve működik. Ki lehet szedni ezt, és át lehet tenni egy másik fájlba, hogy ott is működjön?
Vagy a fenti php-nak címsorban nem lehet átadni a szükséges paramétereket? Mert akkor minden letöltéshez lehetne 1-1 címet generálni, amit azután be lehetne tenni egy nagyon egyszerű oldalba.
Csavar benne, hogy a mutatott oldalon sok esetben több lap van, amiket csak captcha beírásával lehet letölteni. Ezt nem lehet megkerülni, de legalább a monoton részét szeretném automatizálni.
-
csiki_92
aktív tag
válasz
Claude Leon #1719 üzenetére
Köszi a segítséget mindkettőtöknek.
-
bambano
titán
válasz
Claude Leon #1717 üzenetére
bc-ben a scale= utasítással állítható.
-
csiki_92
aktív tag
válasz
bambano #1715 üzenetére
Nem tudom, hogy mire gondolsz, terminálban kell csinálnom. Szóval ez a cucc közvetlenül a terminálban van írva, és a zh feladatban mértani közép kell, ami azt jelenti, hogy mindenképpen kéne nekem a tizedes tört.
Esteleg úgy nem lehet valahogy megoldani a problémát, hogy nem 1/9-dik hatványra emelem, hanem 9. gyököt vonok belőle, valamilyen parancsal? -
csiki_92
aktív tag
Sziasztok!
Adott az alábbi shell script:
(cat <<EOT
1;2;3
4;5;6
7;8;9
EOT
) > matrix.datn=0;m=1;j=0;k=0
for i in `cat matrix.dat| tr \; \ `; do
m=$(expr $m \* $i)
let n++
k=$(expr 1 / $n)
j=$(expr $m**$k)
doneEz egy 3x3-as mártix mértani közepét számolná ki, viszont olyan problémám van vele, hogy a K=1/9-et, ami 0,1111111... 0-ra kerekíti, így az m a k-adikon, valójában m a 0-dikon lesz, ami ugye 1, és ez által az eredmény hibás lesz.
Valaki tudna nekem egy megoldást arra, hogy a k-ban megőrizze a 0,11111... eredményt, és ne kerekítse le 0-ra?Előre is köszi.
-
Keeperv85
nagyúr
válasz
Jester01 #1712 üzenetére
Maga az eszköz sajnos képtelen fizikailag bekapcsolni (még a kontroll led sem megy), mivel a gazdája sikeresen flashelt rá egy nem ide való firmware-t. Mivel ez egy ARM7-es architektúra, így van egy biztonsági zóna a flashben, amit nem lehet sehogy felülírni, ebben van a prebootloader, ami most el is indul szépen. Viszont innen nincs tovább, mivel az egyetlen érdemi megoldás a Qualcomm QPST szoftvere csak akkor tud partíciós táblákat felírni, ha megvan a teljes firmware ehhez is. Nincs meg és a gyártó soha sem fogja oda adni...
-
Keeperv85
nagyúr
válasz
Jester01 #1710 üzenetére
Köszi!
Ez nem túl jó hír számomra, mert feltételezi azt, hogy az eszközöm, ami jelenleg láthatólag nem jut túl a PBL szekción, egyetlen érvényes meghajtót sem indít el, ugyanis a csatlakoztatáskor a dmesg annyit ad inputra, hogy:
[42276.860131] usb 1-1: new high-speed USB device number 20 using ehci_hcd
[42276.994412] usb 1-1: string descriptor 0 malformed (err = -61), defaulting to 0x0409
[42276.997252] qcserial 1-1:1.0: Qualcomm USB modem converter detected
[42277.000826] usb 1-1: Qualcomm USB modem converter now attached to ttyUSB0Így igen nagy valószínűséggel végleg sikerült a gazdájának a másvilágra küldeni...
-
Jester01
veterán
válasz
Keeperv85 #1709 üzenetére
Ez egy igen borzalmasan megírt script de a célnak gondolom megfelel.
Egy sort bogarászik ki a dmesg kimenetéből, ami illeszkedik az sd.27 sd.28 regex mintára majd abból kiírja a kettőspont előtti sd. részt. (A pont regexben egy darab tetszőleges karaktert jelent.)Nem tudom pontosan melyik sorokra keres, de van egy olyan érzésem, hogy a partíciókat kiíró sorból keres olyat amiben van 27-es és 28-as partíció is majd kiírja ezen eszköz nevét. Ilyesmi sorról lehet szó:
sda: sda1 sda2 < sda5 sda6 sda7 sda8 sda9 >
Persze itt csak 9-ig van partíció, de a script olyat keres amiben 28-ig van, és annak az eszköznek a nevét írná ki (jelen esetben az sda) -
Keeperv85
nagyúr
Sziasztok!
Nem értek a shell scriptekhez ennyire, illetve jobb megfogalmazás, hogy egyáltalán nem értek hozzájuk, szóval megköszönném ha megmondaná valaki eme rövid kis szösszenet tulajdonképpen mit is csinál, ugyanis módosítanom kéne úgy, hogy az én eszközömmel is működjön, ami nagyon nem HTC.Íme, erről lenne szó:
#!/bin/sh
echo " Searching for bricked device..."
sleep 2s
dmesg | sed -ne '/sd.27 sd.28/{ s/.*\(sd.\):.*/\1/p ; q }' |grep "sd" > /dev/null 2>&1
if [ $? -eq 0 ]; then
echo "The bricked device is on"
dmesg | sed -ne '/sd.27 sd.28/{ s/.*\(sd.\):.*/\1/p ; q }'
echo "Use the above node to perform operations using the emmc_recover tool"
else
echo "Device can't be detected. Check connections"
fi
#Detect script is part of the HTC unbricking project
#Credits Dexter93, Fuses, MOVZX, RussianBearAzt értem, hogy a dmesg mit csinál és egy kósza találkozásom volt már a sed-el is valami kapcsán, de nem ilyen szinten....
-
Jester01
veterán
Nem teljesen tiszta mit szeretnél, de első tippem ez: sed -n "2,${g}p"
Másik kérdésre: igen, meg lehet adni regexet, ami alapesetben a szónak is megfelel ha éppen nincs benne speciális karakter. A szavakat perjelek közé kell tenni vagy az alternatív \c...c delimitációt használni. Tehát sed -n '/ettől/,/idáig/'
-
prucam
tag
Sziasztok,
a "sed"-el elakadtam…
Van egy változóm:
g=7 #a tartomány utolsó sorameg két parancsom ami nem mükődik:
sed -n '2,$gp'
sed -i '2,$gd'Mi a helyes forma?
Ill. lenne egy kérdésem is. A tartomány határait megadhatjuk-e szavakkal is?
PL.:
sed -n 'ettől,idáig'üdv
Új hozzászólás Aktív témák
- Eladó steam/ubisoft/EA/stb. kulcsok Bank/Revolut/Wise (EUR, USD, crypto OK)
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- Windows 10/11 Home/Pro , Office 2024 kulcsok
- Játékkulcsok olcsón: Steam, Uplay, GoG, Origin, Xbox, PS stb.
- Antivírus szoftverek, VPN
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged