8<------------------------------------------------------------------------------------
Als ik zo door ga haal ik m'n dood niet. | ik hou van goeie muziek
Heb je ook perl op die bak? Dan zou je het zo kunnen doen:Op donderdag 24 januari 2002 15:17 schreef Super_ik het volgende:
kep dus iets in een file staan, op elke regel een getal
dus vb:
code:
1 2 3 123456 234567 345678
en cat ik nou per regel er iets uithalen?
t moet dus zoiets worden als
echo dump < `cat bestandmetcijfers`> /mnt/recover.$i | debugfs
en nog een probleem, hoe laat ik dus die $i elke keer met 1 ophogen, in een lus dus?
code:
1
2
3
4
5
6
7
8
| #!/usr/bin/perl
my $i = 1;
open (FILE, "/mijn/bestand");
while (<FILE>)
{
`dump $_ > /mnt/recover.$i | debugfs`;
$i++;
} |
Even in een bestandje zetten of gewoon direct vanaf de commandline hetzelfde doen.
In bash krijg je denk ik iets als 'for i in `cat /mijn/bestand`; do 'dump $i > /mnt/recover.$i | debugfs'; done'. Je krijgt dan alleen geen goed tellende recover.*, is dat echt nodig? Anders moet een of andere bash-goeroe maar even melden hoe je ook alweer op kun tellen in bash; mijn taal blijft toch perl
Leven is het meervoud van lef | In order to make an apple pie from scratch, you must first create the universe.
for j in `seq 1 100` ; do echo bla > file.$j ; done
dit doet de lus, waar bij $j van 1 tot 100 loopt.
dit doet de lus, waar bij $j van 1 tot 100 loopt.
umj ja die lus appart lukt wel ja. maardan he?
8<------------------------------------------------------------------------------------
Als ik zo door ga haal ik m'n dood niet. | ik hou van goeie muziek
jahoor
ff voorbeeldje
en dan zeg maar zoiets:
het lijkt nergens op natuurlijk, maar t is maar ff om aantegeven wat ik wil
ff voorbeeldje
code:
1
2
3
4
| bestand.txt: 123456 234567 345678 |
en dan zeg maar zoiets:
code:
1
2
| for $i=1; $i <= `cat bestand.txt|wc -l`;$i++ echo bestand.regel[$i] > bla.$i |
het lijkt nergens op natuurlijk, maar t is maar ff om aantegeven wat ik wil
8<------------------------------------------------------------------------------------
Als ik zo door ga haal ik m'n dood niet. | ik hou van goeie muziek
Ah ja, ik denk dat ik het begrijp : )
Je wil dus de inhoud van regel 10 in bla.10 hebben, en de inhoud van regel 42 in bla.42?
zou dat moeten doen ongeveer : )
Wat is bash toch weer heerlijk ranzig (:
Je wil dus de inhoud van regel 10 in bla.10 hebben, en de inhoud van regel 42 in bla.42?
code:
1
| length=`cat bestand.txt | wc -l` ; for i in `seq 1 $length` ; do head bestand.txt -n $i | tail -n 1 > file.$i ; done |
zou dat moeten doen ongeveer : )
Wat is bash toch weer heerlijk ranzig (:
head bestand.txt -n blaOp donderdag 24 januari 2002 16:51 schreef blaataaps het volgende:
Ah ja, ik denk dat ik het begrijp : )
Je wil dus de inhoud van regel 10 in bla.10 hebben, en de inhoud van regel 42 in bla.42?
code:
1 length=`cat bestand.txt | wc -l` ; for i in `seq 1 $length` ; do head bestand.txt -n $i | tail -n 1 > file.$i ; done
zou dat moeten doen ongeveer : )
Wat is bash toch weer heerlijk ranzig (:
klein fautje, maar heel erg bedankt
8<------------------------------------------------------------------------------------
Als ik zo door ga haal ik m'n dood niet. | ik hou van goeie muziek
bash talkin dirty:
dit is het geworden
code:
1
| lenght=`cat stats.inodes|wc -l`; for i in `seq 1 $lenght`; do echo "dump <`head stats.inodes -n $i |tail -n 1`> /mnt/recov.$i"|debugfs /dev/hda6 ;done |
dit is het geworden
8<------------------------------------------------------------------------------------
Als ik zo door ga haal ik m'n dood niet. | ik hou van goeie muziek
He bahOp donderdag 24 januari 2002 17:23 schreef Super_ik het volgende:
bash talkin dirty:
code:
1 lenght=`cat stats.inodes|wc -l`; for i in `seq 1 $lenght`; do echo "dump <`head stats.inodes -n $i |tail -n 1`> /mnt/recov.$i"|debugfs /dev/hda6 ;done
dit is het geworden
Als op elke regel maar 1 getal staat kun je dit veel eenvoudiger doen met 'for i in `cat <bestand>`'...
Ik zou dan zoiets gedaan hebben:
code:
1
2
3
4
5
6
| j=0
for i in $(cat stats.inodes)
do
j=$((j+1))
echo "dump < $i > /mnt/recov.$j" | debugfs /dev/hda6
done |
Dit is efficienter, want je hoeft niet telkens de hele file te head-en en tail-en. Bovendien vind ik het iets eenvoudiger en netter
$() is hetzelfde als `` btw.
Pagina: 1