Hozzászólások
Sziasztok kellene írnom egy scriptet
már a java részét meg is csináltam csak eddig még
szövegkezeléssel nem foglakoztam így nem tom megoldani az
alábbi problémákat:
beszúrás: bekér egy számot és egy szöveget, és a szöveget beszúrja
a fájlba a megadott számú sorba (és az eredetileg ebben a sorban lévő szöveg és az utána következő sorok egy sorral hátrébb kerülnek a
fájlban)
törlés: bekér egy számot, és a fájlból törli a megadott számú sort (és
az utána következő sorok egy sorral előrébb kerülnek a fájlban)
legnagyobb: meghatározza a fájlban található legnagyobb számot
(feltehető, hogy csak pozitív egész számok vannak a fájlban)
Tehát ez a három probláma van amit még nem oldottam meg :(
Aki már csinált ilyesmit segítene?
- A hozzászóláshoz be kell jelentkezni
[quote:485e0466d0="jamal"]
beszúrás: bekér egy számot és egy szöveget, és a szöveget beszúrja
a fájlba a megadott számú sorba (és az eredetileg ebben a sorban lévő szöveg és az utána következő sorok egy sorral hátrébb kerülnek a
fájlban)
törlés: bekér egy számot, és a fájlból törli a megadott számú sort (és
az utána következő sorok egy sorral előrébb kerülnek a fájlban)
legnagyobb: meghatározza a fájlban található legnagyobb számot
(feltehető, hogy csak pozitív egész számok vannak a fájlban)
szerintem a torles: catolod soronkent, mellette porog a szamlalo, es ha a szamlalo=$VALTOZOD akkor nem catolja tovabb. szerintem.soronkent catolni meg vagy lehet rendesen egy paranccsal, vagy wc -l -lel megnezed hany sorbol all, es sed-el kivagod mindig az n-edik sort, es aztan echo $sor >> temp_file. bar ez utobbi nem tul elegans.
beszuras detto, itt is soronkent kell kicatolni, es aztan ha a szam eleri a megadottat, akkor nem catol, hanem a masik forrasbol echo-zza be a temp_file-be az ominozus sort.
legnagyobb szam: hogy vannak elhelyezkedve a szamok? ugy ertem soronkent, vagy pl. egy sorban 324235261269 ez 12 kulon szamnak szamit?
bash-ban nem lehet double-okat osszehasonlitani, legalabbis en meg nem jottem ra hogyan. talan bc-t kell hasznalni. irjal inkabb c progit ra.
b
- A hozzászóláshoz be kell jelentkezni
És hogyan catoljam soronként?
- A hozzászóláshoz be kell jelentkezni
erre mondtam, hogy megnezed hany sor van benne, es mindig az n. sort catolod. ahol n persze minden catolas utan ugrik.
- A hozzászóláshoz be kell jelentkezni
[quote:fe6ed12f74="jamal"]
beszúrás: bekér egy számot és egy szöveget, és a szöveget beszúrja
a fájlba a megadott számú sorba (és az eredetileg ebben a sorban lévő szöveg és az utána következő sorok egy sorral hátrébb kerülnek a
fájlban)
[code:1:fe6ed12f74]
n=szam
s="szoveg"
filename="file"
m=$(wc -l "$filename" |cut -f1 -d\ ) && head -n $(($n-1)) "$filename" >"$filename".$$ && echo "$s" >> "$filename".$$ && tail -n $(($m-$n+1)) "$filename" >>"$filename".$$ && mv "$filename".$$ "$filename"
[/code:1:fe6ed12f74]
törlés: bekér egy számot, és a fájlból törli a megadott számú sort (és
az utána következő sorok egy sorral előrébb kerülnek a fájlban)
[code:1:fe6ed12f74]
n=szam
filename="file"
m=$(wc -l "$filename" |cut -f1 -d\ ) && head -n $n "$filename" >>"$filename".$$ && tail -n $(($m-$n-1)) "$filename" >>"$filename".$$ && mv "$filename".$$ "$filename"
[/code:1:fe6ed12f74]
- A hozzászóláshoz be kell jelentkezni
[quote:8a8dd4a768="blau"]
szerintem a torles: catolod soronkent, mellette porog a szamlalo, es ha a szamlalo=$VALTOZOD akkor nem catolja tovabb. szerintem.soronkent catolni meg vagy lehet rendesen egy paranccsal, vagy wc -l -lel megnezed hany sorbol all, es sed-el kivagod mindig az n-edik sort, es aztan echo $sor >> temp_file. bar ez utobbi nem tul elegans.
b
A sed-es megoldas nem tul elegans, de az ilyen jellegu problemakat nagyon elegansan meg lehet oldani ed szkriptekkel. Egyenesen a file-ban vegzed el a modositasokat, es nem kell felesleges allomanyokat letrehozni vagy pipeolni.
A kerdes csak az, hogy ebben a hazi feladatban szabad-e ed-et hasznalni. :lol:
- A hozzászóláshoz be kell jelentkezni
időközben én is sed-del
csináltam meg a problémát csak én még a
törlést írtam meg de a másik tök uygan úgy lehet :)
ZHX
De a legnagyobb számról sajna lövésem sincs.
JJJA MIVEL LEHET AZT MEGCSINÁLNI HOGY
CSINÁLTAM EGY MENUT SELESTEL S HA
MONDJUK VÉGREHAJTOTTAM VMILYEN MŰVELETET AKKOR CSAK EGY ENTER
UTÁN TÉRJEN VISSZA A MENUBE??
Tehát pl töröltem egy sort s csak aztán lép vissza a menübe
ha egy enter ütöttem
- A hozzászóláshoz be kell jelentkezni
Szal szerintetek a sed-del
meglehet keresni a legnagyobb számot?
Ja a sortőrlés csak ennyi
sed $sor'd' $inputfile >>ize.tmp
mv ize.tmp $imputfile
rm ize.tmp
Már csak a szám marad hátra
- A hozzászóláshoz be kell jelentkezni
Most vettem észre hogy kellett csinálni
egy olyan szókeresőt ami meghatározza hogy hányszor fordul elő valami a fileban
én grep "minta" file -c
parancsal oldottam meg de azzal csak azzal
csak a sorok számát melyben
előfordul azt adja meg.
Szal azt hogy kell valaki szerint hogy azt is kiszámolja hogy
összesen hányszor fordul elő
- A hozzászóláshoz be kell jelentkezni
echo "mintat kerek"
count=0
read minta
for i in `cat $input`; do
if [ $i = $minta ]; then
count=$[$count+1]
fi
done
echo "a keresett minta" $count"-ször furdul elő a szövegben"
Így jó lett a kereső számláló
Ezzel a módszerrel a számhasonlítás is megy így kész vagyok a feladattal
- A hozzászóláshoz be kell jelentkezni