Kezdőlap › Fórumok › Programozás › „Csak guruknak” – konyhanyelven…
- This topic has 150 hozzászólás, 25 résztvevő, and was last updated 15 years, 8 months telt el by
uzsolt.
-
SzerzőBejegyzés
-
2007-08-20-20:54 #2081728
Szerintem elsősorban nem kayapo-t illeti, hanem a (sajnos) megboldogult Linuxvilágot. Egyébként most szintén megy, nem tudom, mi lehetett nálad vagy náluk.
2007-08-21-12:24 #2081729uzsolt wrote:Szerintem elsősorban nem kayapo-t illeti, hanem a (sajnos) megboldogult Linuxvilágot. Egyébként most szintén megy, nem tudom, mi lehetett nálad vagy náluk.Ez így igaz, ezen felül uzsolt tett még valami fontosat, a scriptet lefuttatni nulla fáradság volt, megírni annál több.
2007-08-27-08:54 #2081730Na, megint alkottam egyet. Nem tudom, fogja-e valaki használni, de azért idevágok nektek egy kódot. Egy egyszerű dolgot csinál: a második paramétertől leledző fájlokban megnézi, hogy melyek azok a sorok, amelyek egy adott számnál kevesebbszer (vagy pont ugyanannyiszor) fordul elő, és azokat kiírja, ill. mellé azt, hogy mennyi is az az annyi.
Szóval a kód:#!/bin/bash
# Egy kis útmutató
function Help () {
echo Használat: $(basename $0) n files
echo n : legfeljebb hányszori elõfordulásnál írjuk ki
echo files : melyik fájlokból
}# Paraméterek számának tesztelése
if [ $# -lt 2 ]; then
Help
exit 1
fi# Kér-e a delikvens help-et
if (echo $* | grep — „–help” &>/dev/null); then
Help ; exit 0
fi# Maga az érdemi munka
TEMPFILE=$(mktemp)
NEVEK=$(mktemp)
# Eltároljuk a minimális számot, hogy lehessen shift-elni
MIN=$1# Eltűnik az első paraméter, így csak a fájlnevek maradnak
shift
# A fájlokat kilistázzuk és rendezve egy ideiglenes fájlba nyomjuk
cat $* | sort > $TEMPFILE
# Minden sorból csak egyet kérünk
cat $TEMPFILE | uniq > $NEVEK# Honnan kell olvasni
exec 9>&0 < $NEVEK
# Amíg van sor, addig a NEV változóba olvasunk…
while read NEV ; do
# Megszámoljuk, hányszor van a TEMPFILE-ban
HANYSZOR=$(grep -c „$NEV” $TEMPFILE)
# Ha kisebb vagy egyenlő, akkor…
if [ $HANYSZOR -le $MIN ]; then
echo $NEV $HANYSZOR
fi
done# Drága a tárhely, ezért törlünk…
rm $TEMPFILE $NEVEKEgészségetekre!
2007-08-27-13:06 #2081731nemláccanak a komentek
2007-08-27-13:13 #2081732Remélem, most már jobb 😉
(Themis téma alatt a quote mezője sötétebb, és ott jól látszódott a bézs is)
2007-08-28-18:23 #2081733Bocs, hogy ide írok, de akadt egy kis problémám, és nem nagyon van ötletem, hogy SQL-lel hogyan oldjam meg (postgres a platform).
A helyzet a következő: van egy hierarchikus rendszer, N szinttel (a szintek száma ismeretlen). Ha valaki beküld egy adatot, akkor van lehetősége arra, hogy csak az ő rendszerében jelenjen meg, vagy az alatta lévő, és hozzá tartozó szintek rendszereiben is. A probléma a következő: mondjuk a legalsó szintről milyen query-vel kapom meg a fölötte álló szintek id-jeit? A tábla leegyszerűsítve:
id – int, sequence-szel növelve
title – text, a szint neve
parent – a szülő id-je, legfelső esetén NULL2007-10-22-10:07 #2081734Szerintem mindenki ismeri az olyan jellegű példákat, miszerint ha leírjuk egytől 2007-ig az összes egész számot, akkor az egyes számjegyet hányszor írtuk le. Mivel a unix/linux alapparancsok jó matekosok, ezért rá lehet őket bírni a feladat (brute-force) megoldására:
Code:$ seq 1 2007 | grep -o 1 | wc -l
16012007-10-22-17:29 #2081735Névtelen
uzsolt wrote:Szerintem mindenki ismeri az olyan jellegű példákat, miszerint ha leírjuk egytől 2007-ig az összes egész számot, akkor az egyes számjegyet hányszor írtuk le. Mivel a unix/linux alapparancsok jó matekosok, ezért rá lehet őket bírni a feladat (brute-force) megoldására:Code:$ seq 1 2007 | grep -o 1 | wc -l
1601Reméljük matekversenyen semmilyen kiscsákó nem fogja ezt beadni megoldásnak. Bár mondjuk aki érti biztos dob egy hátast 🙂
2007-11-07-21:33 #2081736Gondoltam, szórakozom egy kicsit a less-szel.:)
Írtam egy scriptet, mely különböző színeket ad a man oldalaknak és kiírja a parancsot is. Így, ha valakinek megtetszenek az aktuális színek, az el tudja legközelebb is érni ezt a csodát. 🙂Íme a script:
Code:#!/bin/bashESC=$’x1b’
TERMINFO_DIR=”/usr/share/terminfo/x”get_key () {
read -n1 KEYif [ „${KEY}” == „${ESC}” ]
then
exit 0
fi
}for FILE in `find ${TERMINFO_DIR}`
do
TERM=”${FILE##*/}” man mencoder
clear
echo „”
echo „Command: TERM=””${FILE##*/}”” man mencoder”
echo „”
echo „Press any key to continue or ESC to quit.”
echo „”
echo „”get_key
doneÉs néhány screenshot:
2007-11-15-20:39 #2081737Egy újabb tv-műsor:
Code:!/bin/bashCONFIG_FILE=~/.config/tvmusor.cfg
function PrintChanell () {
FILE=$1
TMP_FILE=$(mktemp)
w3m -dump http://tvmusor.aweben.hu/$FILE > $TMP_FILE
MAX_SOR=$(grep -n tvmusor $TMP_FILE | sed -n „2p” | awk -F „:” {‘print $1’})
sed -n „5,$((MAX_SOR-1)) p” $TMP_FILE | grep -v „^$” | sed „3,$ s@^@ @g”
rm $TMP_FILE
}exec 9>&0 < $CONFIG_FILE
while read egysor; do
PrintChanell $egysor
echo
doneA tvmusor.cfg fájl tartalma szimplán a csatorna neve, html nélkül (a szkriptben szereplő honlap linkjei alapján tudhatod meg).
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz