Avatar billede atom*izer* Nybegynder
07. juni 2006 - 11:31 Der er 8 kommentarer og
1 løsning

Shell script, print linje fra fil

Hej,

Jeg sidder og skal lave et shell script der kan nogle forskellige ting, den skal bla. kunne udskrive en bestemt linje fra en fil. Jeg bruger dandom til at generere linje nummeret der skal udskrives men jeg kan simpelthen ikke finde et program/kommando som kan udskrive en linje fra en fil baseret på et tal som argument. (Er argumentet fx. cat -n 10 skal den udskrive linje 10 til stout. Bemærk eksemplet med cat er opdigtet, jeg tror ikkecat kan det jeg vil)

Håber nogen kan hjælpe.
Avatar billede strych9 Praktikant
07. juni 2006 - 11:49 #1
cat -n filnavn | grep 10

Er det godt nok?
Avatar billede atom*izer* Nybegynder
07. juni 2006 - 12:20 #2
weee takker mange gange... jeg vidste det var enkelt siden jeg ikke kunne finde det på google.

Jeg skal dog ikke bruge "-n"

Kan du ikke lave et "svar" så jeg kan give point?
Avatar billede strych9 Praktikant
07. juni 2006 - 12:41 #3
jep

-n switchen tilføjer linjenumrene, så du kan droppe dandom (hvad det så end er) hvis det gør det hele lettere. Det afgør du selv. =)
Avatar billede atom*izer* Nybegynder
07. juni 2006 - 14:00 #4
Jeg var lige lidt for hurtig på aftrækkeren da jeg sagde at det virkede..

Listen jeg har er med ip numre og grep hiver jo også de ip numre som tallet indgår i. (dandom skulle self. være random)

Dorfor kan jeg ikke bruge din version desværre. Har du et andet forslag? Der må da være en nemmere metode end den jeg bruger nu:

Selve scriptet indeholder:

\\generér et tilfældigt tal som vi kan bruge til at finde en linje
random -e 34

\\læs det generede tal
proxynum=$?

\\ Find ip'en med dette nummer i proxylist filen (Se proxylist fil herunder)
cat /root/temp/proxylist |grep -A 1 -m 1 "$proxynum"- > /root/temp/cool

\\find den linje hvor der ikke står proxy (så har vi ip)
proxyip=`cat /root/temp/cool |grep -v proxy`


####
Proxylist filen:
00- proxy0
141.48.34.240:2301
01- proxy1
81.208.62.251:80
02- proxy2
82.160.142.22:3128
og så videre

Det fungerer som sådan ok men det er et bøvl når jeg skal opdatere proxylisten da jeg manuelt skal indsætte ip imellem de rigtige "labels" Yndermere ville det ikke gøre noget hvis scriptet var mere enkelt og jeg fx. ikke skulle bruge "cool" filen. (Ved godt det kan gøres med vaiabler)

håber nogen kan hjælpe
Avatar billede strych9 Praktikant
07. juni 2006 - 16:56 #5
Brug eventuelt en kombination af head og tail i stedet så:
http://www-128.ibm.com/developerworks/linux/library/l-tiptex3.html

Altså for at få linje 10:
head -n10 filnavn | tail -n1

eller noget i den stil.
Avatar billede atom*izer* Nybegynder
07. juni 2006 - 18:33 #6
Der var den... takker, du får point.
Avatar billede atom*izer* Nybegynder
07. juni 2006 - 18:34 #7
Glemte lige point :D
Avatar billede atom*izer* Nybegynder
07. juni 2006 - 18:35 #8
ok nu fatter jeg ikke hvordan jeg giver point... skal jeg ikke skrive en kommentar og trykke "Accepter"?
Avatar billede strych9 Praktikant
08. juni 2006 - 16:56 #9
=)

Nej, du logger såmænd bare ind på Eksperten som normalt og går til det her spørgsmål. Dernæst markerer du mit navn i den boks der er kommet til syne nederst på siden og så klikker du accepter. =)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester