Hozzászólások
-
SzerzőBejegyzés
-
Volt szabad 5 percem, úgyhoy összedobtam egy kis bash scriptet. ;D Lassan már 3 hete dobta fel a témát Vizsla, de mindenki csak kóstolgatja a bash változatot, most itt egy komplex implementáció:
halmaz.sh
Code:#!/bin/shTMP1=”temp.1.txt”
TMP2=”temp.2.txt”
BEVITEL=1
KEZDO=1
ELVALASZTO=”.”function rendezes {
if ! [ -f $1 ]
then
echo „A(z) $1 fájl nem létezik!”
exit 2
fi
cat $1 | sort -u >$2
}function rendezes_karakterlanc {
if ! [ -f $1 ]
then
echo „A(z) $1 fájl nem létezik!”
exit 2
fi
cat $1 |
sed -e ‘s/”([^”]*)”[ t]*/1n/g’ |
grep ‘[^n]’ |
sort -u >$2
}function numerikus_rendezes {
O1=$KEZDO
O2=`expr $O1 + 1`
O3=`expr $O1 + 2`
if ! [ -f $1 ]
then
echo „A(z) $1 fájl nem létezik!”
exit 2
fi
cat $1 | sort -u -t $ELVALASZTO -k ${O1},${O1}n -k ${O2},${O2}n -k ${O3},${O3}n >$2
}function numerikus_rendezes_karakterlanc {
O1=$KEZDO
O2=`expr $O1 + 1`
O3=`expr $O1 + 2`
if ! [ -f $1 ]
then
echo „A(z) $1 fájl nem létezik!”
exit 2
fi
cat $1 |
sed -e ‘s/”([^”]*)”[ t]*/1n/g’ | grep ‘[^n]’ |
sort -u -t ‘$ELVALASZTO’ -k ${O1},${O1}n -k ${O2},${O2}n -k ${O3},${O3}n >$2
}function kivon {
$RENDEZES $1 $TMP1
$RENDEZES $2 $TMP2
diff -u $TMP1 $TMP2 |
grep -v „^—” |
grep „^-„|
cut -b 2- |
sort -u >$3
rm -f $TMP1 $TMP2
}function unio {
if test „$LANC” = „”
then
cat $1 $2 >$TMP1
else
cat $1 $2 | tr ‘n’ ‘ ‘>$TMP1
fi
$RENDEZES $TMP1 $3
rm -f $TMP1
}function metszet {
$RENDEZES $1 $TMP1
$RENDEZES $2 $TMP2
diff -u $TMP1 $TMP2 |
grep „^ ” |
cut -b 2- |
sort -u >$3
rm -f $TMP1 $TMP2
}function segitseg {
echo „Használat: $0 [opciók] — ”
echo „”
echo ” Műveletek:”
echo ” –kivon”
echo ” –unio”
echo ” –metszet”
echo „”
echo ” Opciók:”
echo ” -l Karakterlánc bemenet”
echo ” -n Numerikus bemenet”
echo ” -t Elválasztó (csak numerikus bemenetnél)”
echo ” -k Kezdő oszlop (csak numerikus bemenetnél)”
echo ” -v Bőbeszédű kimenet”
echo „”
echo ” Példa: $0 A–kivon B C”
echo „”
exit 1
}if test $# -le 4
then
segitseg
fifor i in $*
do
if test „$PARANCS” = „elvalaszto”
then
ELVALASZTO=”$i”
elif test „$PARANCS” = „kezdo”
then
KEZDO=”$i”
else
case $i in
-l) LANC=_karakterlanc ;;
-n) NRENDEZ=numerikus_ ;;
-t) if test „$NRENDEZ” = „”
then
echo „Csak numerikus bemenetet lehet elválasztani!”
exit 3
else
PARANCS=elvalaszto
fi ;;
-k) if test „$NRENDEZ” = „”
then
echo „Csak numerikus bemenetnél lehet kezdő kulcsot megadni!”
exit 3
else
PARANCS=kezdo
fi ;;
–kivon) MUVELET=kivon
if test „$BEVITEL” != 2
then
segitseg
fi ;;
–unio) MUVELET=unio
if test „$BEVITEL” != 2
then
segitseg
fi ;;
–metszet) MUVELET=metszet
if test „$BEVITEL” != 2
then
segitseg
fi ;;
-v) NYOMTAT=1 ;;
-h) segitseg ;;
–help) segitseg ;;
-?) segitseg ;;
*) if test „$PARANCS” != „”
then
segitseg
else
case $BEVITEL in
1) FORRAS1=$i
BEVITEL=2 ;;
2) FORRAS2=$i
BEVITEL=3 ;;
3) KIMENET=$i
BEVITEL=4 ;;
*) segitseg ;;
esac
fi;;
esacfi
doneRENDEZES=${NRENDEZ}rendezes${LANC}
$MUVELET $FORRAS1 $FORRAS2 $KIMENETif test „$LANC” != „”
then
mv $KIMENET $TMP1
cat $TMP1 |
sed -e ‘s/([^n]*)/”1″/g’ |
tr ‘n’ ‘ ‘ >$KIMENET
echo „” >>$KIMENET
rm -f $TMP1
fiif test „$NYOMTAT” = „1”
then
echo „”
echo „Művelet: $MUVELET”
echo „”
echo „Forrás 1 (A):”
echo „————-”
cat $FORRAS1
echo „”
echo „Forrás 2 (B):”
echo „————-”
cat $FORRAS2
echo „”
echo „Eredmény (C):”
echo „————-”
cat $KIMENET
echo „”
fiNincs különösebben tesztelve, tényleg csak gyorsan összedobtam. Viszont szándékosan kihagytam a leírást (megjegyzéseket), hogy pontosan mi mit csinál. Akit érdekel, jó kis móka kibogozni.
Az általam tesztelt eredmények:
Code:$ ./halmaz.sh -v A1 –metszet B1 CMűvelet: metszet
Forrás 1 (A):
————-
1.1.3.fc6
1.1.5.fc6
1.2.3.fc6
2.1.4.fc6
1.10.5.fc6Forrás 2 (B):
————-
1.1.3.fc6
1.1.5.fc6
1.2.3.fc6
2.1.7.fc6Eredmény (C):
————-
1.1.3.fc6
1.1.5.fc6
1.2.3.fc6és
Code:$ ./halmaz.sh -l -v A –metszet B CMűvelet: metszet
Forrás 1 (A):
————-
„1.1.3.fc6” „1.1.5.fc6” „1.2.3.fc6” „2.1.4.fc6” „1.10.5.fc6”Forrás 2 (B):
————-
„1.1.3.fc6” „1.1.5.fc6” „1.2.3.fc6” „2.1.7.fc6”Eredmény (C):
————-
„1.1.3.fc6” „1.1.5.fc6” „1.2.3.fc6”NagyEsta wrote:A sort -n nekem nem működik, mert ez lesz a kimenete:Code:[root@NagyEsta ~]# ls | grep ^ize | cut -f 2 -d „-” | sort -n
1.1.3.fc6
1.1.5.fc6
1.2.3.fc6
2.1.4.fc6
1.10.5.fc6Igaz, a sort alapból nem tud több oszlopot rendezni. De a következő már jó:
Code:$ cat list
„1.1.3.fc6” „1.1.5.fc6” „1.2.3.fc6” „2.1.4.fc6” „1.10.5.fc6″
$ cat list|sed -e ‘s/”([^”]*)”[ t]*/1n/g’|grep ‘[^n]’|sort -t ‘.’ -k 1,1n -k 2,2n -k 3,3n
1.1.3.fc6
1.1.5.fc6
1.2.3.fc6
1.10.5.fc6
2.1.4.fc6Bár így meg a rendező kulcsnak az első pozícióban kell lennie, tehát nem használható fel általános rendezéshez.
NagyEsta wrote:A sort -n nekem nem működik, mert ez lesz a kimenete:Code:[root@NagyEsta ~]# ls | grep ^ize | cut -f 2 -d „-” | sort -n
1.1.3.fc6
1.1.5.fc6
1.2.3.fc6
2.1.4.fc6
1.10.5.fc6Igaz, a sort alapból nem tud több oszlopot rendezni. De a következő már jó:
Code:$ cat list
„1.1.3.fc6” „1.1.5.fc6” „1.2.3.fc6” „2.1.4.fc6” „1.10.5.fc6″
$ cat list|sed -e ‘s/”([^”]*)”[ t]*/1n/g’|grep ‘[^n]’|sort -t ‘.’ -k 1,1n -k 2,2n -k 3,3n
1.1.3.fc6
1.1.5.fc6
1.2.3.fc6
1.10.5.fc6
2.1.4.fc6Bár így meg a rendező kulcsnak az első pozícióban kell lennie, tehát nem használható fel általános rendezéshez.
NagyEsta wrote:Aham. Értem már a problémát, és így esélytelen a dolog. A sort -n sem megfelelő….
Bocs a bénázásért. Lehet írok egy sortver progit, ami rendezi a kapott verziószámokat 😀Nem értelek. Írtál egy majdnem jó megoldást, majd a jó megoldásra hivatkozva feladod. Nézd csak meg, az „-n” kapcsolót korábban nem írtad, pedig működik.
NagyEsta wrote:Aham. Értem már a problémát, és így esélytelen a dolog. A sort -n sem megfelelő….
Bocs a bénázásért. Lehet írok egy sortver progit, ami rendezi a kapott verziószámokat 😀Nem értelek. Írtál egy majdnem jó megoldást, majd a jó megoldásra hivatkozva feladod. Nézd csak meg, az „-n” kapcsolót korábban nem írtad, pedig működik.
kisbetu wrote:gabaman wrote:az a kérdés, hogy „a gcc le tud-e fordíani C++ kódot?”Ez a kérdés nem merült fel.
Ha már a hejesirásomban nem tucc belekötekedni, kullön köcönöm h egy a témábenn kompetens oktat ki. Értam a célzást, más takarodom is.
Azt hiszem, kevertek pár dolgot, ugyanis az a kérdés, hogy „a gcc le tud-e fordíani C++ kódot?”, egyszerre igaz és hamis. Valójában a gcc név két fogalmat takar: az egyig egy nagy tudású és több programnyelvet támogató szoftvercsomag neve (gcc: GNU Compiler Collection), a másik ennek egy komponensét, ami egy futtatható állomány és C nyelű programokat fordít (gcc: GNU C Compiler).
Sajnos a Linux gyûlölõk propagandája, hogy mindenhez új kernelt kell fordítani. Dehogy van ez így! Mint minden rendes disztribben, a Fedora 5-ben is folyamatosan frissítik a kernelt (desktop szegmens!), így csak a frissítéseket kell(ene) feltenni. Tehát:
# yum update
vagy
Alkalmazások -> Rendszereszközök -> Software UpdaterMellesleg a frissítéseknél a 2.6.17-1.2157_FC5 verzió a legújabb, így szélesebb a wlan támogatás, mint a 2.6.15-nél volt.
Nekem van egy tippem. A Fedorában található egy használható tûzfal, talán az blokkolja az fwbuildert. Kapcsold ki, különben összeakadhatnak. De ez esetben magadnak kell gondoskodni egy biztonságilag megfelelõ védelemrõl.
dexter11 wrote:Vagyok annyira optimista, hogy azt higgyem ha elkészült volna a dolog akkor a tartalommal való feltöltése megoldódott volna.Pedig elkészült. 🙁 Legalábbis szerkezetileg igen. „Mindössze” el kellett volna kezdeni feltölteni, csak nem volt mivel (most sincs). Abban egyet értettünk, hogy Fellow munkája jó irány, de túlzottan részletes, és elavult, sokat kellett volna dolgozni rajta. Ezért próbáltunk meg egy szélesebb körû felmérést készíteni, a fórumozóknak mi és milyen formában lenne a jobb. De senki sem válaszolt rá. Most itt tartunk: van egy FAQ (helpdesk) motor, ami tátong az ürességtõl. Csak a teszt tartalom található meg. A fejlesztési fázis sikeres volt, nem bukott meg. Ellentétben…
Ami a media wiki-t illeti, volt a linuxfórumnak saját wiki-je, de tudtommal senki sem használta. De akár egy sima szöveges fájlban is össze lehetett volna gyûjteni a pl. a top 20 kérdést, de még egy kib… szöveges fájlt sem készített senki sem. Tehát NEM a saját fejlesztésen és nem is a wiki-n bukott meg a dolog. Abban nyugodtan hibáztathattok, hogy egyedül (magam nevében beszélek) megcsinálhattam volna, de nem voltam hajlandó (na miért nem?).
-
SzerzőBejegyzés