Kezdőlap › Fórumok › Programozás › Bash script
- This topic has 437 hozzászólás, 56 résztvevő, and was last updated 13 years, 7 months telt el by
Goosfrabaa.
-
SzerzőBejegyzés
-
2007-02-03-21:38 #2053449
Nagy kár 😉
Biztos meg lehetett volna oldani cut-tal, azzal is próbáltam, de valahogy nem találtam olyasmit, hogy az utolsó ötöt törölje.A sed-del most jöttem rá egy egyszerűbb megoldásra (elfelejtettem, hogy $ elé is kell, hogy a sed értelmezze, ne a bash):
sed -i „s@.{5}$@@g” fájlnév
;D
s: cserére utasítjuk a sed-et
Első kukacpár között: mit cserélünk
.{5}: bármilyen karakter, pontosan ötször előfordulva
$: sor végére igazítva
Második kukacpár között: mire cserélünk (szerintem erre rájössz 😉 )
g : globálisanAz előző verzió, mint az előbb, csak az első kukacpár között:
bármi karakter akárhányszor (zárójelbe rakjuk, hogy később tudjunk rá hivatkozni)
ezután bármi karakter ötször
Második kukacpár:
az első kukacpár között legelső zárójelen belül lévő dolgot beírja 1 helyébeTehát:
abc-gsjhsjs,12.34 esetén az utolsó öt karakter az 12.34 lesz, a 1 értéke pedig az abc-gsjhsjsRemélem, sör mellett is bírod követni 😉
2007-12-31-10:56 #2053450Sziasztok.
Pár napja nagyon szívatnak. Adva van egy script amiből kiemelek egy részletet, és megpróbálom megértetni, hogy mi a bajom vele.Code:GREETING=”jó reggelt”find -depth -maxdepth 1 -print0 | while read -d $” infilename; do
echo $GREETING
infilename=”${infilename##*/}”
if ! [ -d „$infilename” ]; then
GREETING=”jó napot”;
case
itt a casenak megfelelően több functiont hív meg (ugyanebből a scriptből)
esac
fi # infilename ! -d
doneecho $GREETING
Ha azt feltételezem, hogy a while ciklus háromszor fut le akkor ezt az eredményt kapom:
jó reggelt
jó reggelt
jó napot
jó napot
jó napot
jó reggeltAmikor véget ér a ciklus miért jó reggelt a GREETING értéke, mikor „felülírtam” egy jó napottal.
A „find” vagy a „read” egy külön shell-ben fut ? Azért nem őrzi meg a változó az értékét, vagy miért ? Nem értem.2007-12-31-11:28 #2053451Elképzelhető (majdnem biztos) hogy a GREETING változók nem ugyanazok a különböző helyeken.
Én megpróbálnám ez első sorban ezt: export GREETING=”jó reggelt”EL
2007-12-31-14:00 #2053452Nem megy exporttal sem.
2007-12-31-14:26 #2053453A „jó napot” egyszerűen lokális lesz. (A legegyszerűbb, ha file-ba mented… akkor tuti nem lesz az. Vagy megoldod külső futtatás nélkül nélkül: a progi a ciklusban és | nélkül fusson… aszem a | is elég neki.)
2008-01-07-20:56 #2053454sziasztok!
nekem egy olyan kódrészletre lenne szükségem, ami echo -val egy adott fájl utolsó sorába ír
pl.: ha beírom ezt:
Code:echo 1 > test.txtakkor a test.txt legvégére rakjon egy 1 est, mert nekem alapértelmezésképp felülírja az egész fájlt.
köszi
üdv, elno2008-01-07-21:13 #2053455elnoyle wrote:sziasztok!nekem egy olyan kódrészletre lenne szükségem, ami echo -val egy adott fájl utolsó sorába ír
pl.: ha beírom ezt:
Code:echo 1 > test.txtakkor a test.txt legvégére rakjon egy 1 est, mert nekem alapértelmezésképp felülírja az egész fájlt.
köszi
üdv, elnoCsak ennyi kell?
Code:echo 1 >> test.txt2008-01-07-21:17 #2053456nagyonszépen köszönöm:)
és még egy hasonló kódra lenne szükségem, ami a következőt csinálja:van egy mappa amiben soksok lefuttatni való parancs van.
nekem egy oylan megoldás kéne, ami egyetélen szkript futtatásával ezt az összeset elinditja.
tehát valami hasonló hogy /home/én/futtatni/*.
és így lefut minden szkript ami futtatható a /home/én/futtatni könyvtárban.köszi
2008-01-07-21:28 #2053457ilyesmi:
Code:for i in /home/én/futtatni/* ; do /home/én/futtatni/$i & ; done?
(vagy lehet egyszerubben?)
2008-01-07-21:37 #2053458-bash: syntax error near unexpected token `do’
ezt a választ kapom:S
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz