Problem med scripti unix ...

Permalänk
Medlem

Problem med scripti unix ...

Jo jag har en lista som heter studenter

Den ser ut såhär

marma112:Martin:Malmström:800113-1234:TNCCC_1:TDDB46 TDDB80:
urbuv120:Urban:Uv:800121-1234:TNCCC_1:TDDB46 TDDB80:
berbe101:Bertil:Bertilsson:800102-1234:TNCCC_1:TDDB46 TDDB80:
olaol114:Ola:Olsson:800115-1234:TNCCC_1:TDDB46 TDDB80:
vilva121:Vilhelm:Valfridsson:800122-1234:TNCCC_1:TDDB46 TDDB80:
arlar128:Ärling:Ärta:800128-1234:TNCCC_1:TDDB46 TDDB80:
xerxi124:Xerxes:Xi:800124-1234:TNCCC_1:TDDB46 TDDB80:
ostov129:Öster:Överbliven:800129-1234:TNCCC_1:TDDB46 TDDB80:
cecca102:Cecilia:Carlsson:800103-1234:TNCCC_1:TDDB46 TDDB80:
perpe115:Per:Persson:800116-1234:TNCCC_1:TDDB46 TDDB80:
louli111:Louise:Linghed:760112-1234:TNDDD_3:TDDA01 TDDB81 TDDB80:
erier104:Erik:Eriksson:800105-1234:TNCCC_1:TDDB46 TDDB80:
sarsv118:Sara:Svensson:800119-1234:TNCCC_1:TDDB46 TDDB80:
frefr105:Fredrik:Fredriksson:800106-1234:TNCCC_1:TDDB46 TDDB80:
andan100:Anders:Andersson:800101-1234:TNCCC_1:TDDB46 TDDB80:
hanha107:Hans:Hansson:800108-1234:TNCCC_1:TDDB46 TDDB80:
yngyt125:Yngve:Ytter:800125-1234:TNCCC_1:TDDB46 TDDB80:
ivaiv108:Ivar:Ivarsson:780109-1234:TNCCC_3:TDDA89 TDDA94 TDDB17 TDDB46 TDDB80:
nicni113:Nicklas:Nilsson:800114-1234:TNCCC_1:TDDB46 TDDB80:
robra117:Robert:Ramfors:800118-1234:TNCCC_1:TDDB46 TDDB80:
johjo109:Johanna:Johansson:800110-1234:TNCCC_1:TDDB46 TDDB80:
turte119:Ture:Teknolog:800120-1234:TNCCC_1:TDDB46 TDDB80:
wilwo123:Willy:Wonka:800123-1234:TNYYY_5:TDDB80 TDDA34 TDDB17:
gusgu106:Gustav:Gustafson:800107-1234:TNCCC_1:TDDB46 TDDB80:
zamzn126:Zam:Znigel:800126-1234:TNCCC_1:TDDB46 TDDB80:
quiqv116:Quintus:Qvarnström:780117-1234:TNCCC_1:TDDB46 TDDB80:
akeak127:Åke:Åkerström:800127-1234:TNCCC_1:TDDB46 TDDB80:
karka110:Karl:Karlsson:800111-1234:TNCCC_1:TDDB46 TDDB80:
davda103:David:Davidsson:800104-1234:TNCCC_1:TDDB46 TDDB80:

Skriver jag tex cut -d : -f 2 studenter.txt får jag förnamanen i en snygg lista

martin
urban
bertil
osv...

men skriver jag ett script som ser ut såhär
#!/bin/sh

`cut -d : -f 2 $1`
Kommer namnen såhär
martin urban bertil osv......
VArför? och hur fixar jag så dom kommer

martin
urban
bertil
osv...

Permalänk
Medlem

Testa utan ``

#!/bin/sh cut -d : -f 2 $1

Sen kan man ju lägga in resultatet i en variabel och därefter skriva ut innehållet;

#!/bin/sh i=`cut -d : -f 2 $1` echo "$i"

Visa signatur

01001000 01100001 01110010 00100000 01100100 01110101 00100000 01110100 01110010 10000110 01101011 01101001 01100111 01110100 00111111 00100000 00111010 00101001

Permalänk
Medlem

Okey det funka som du sa, tack :).
Men nu har jag ett annat problem=_=

Jag skriver såhär
#!/bin/sh
lol=`cut -d : -f 2 $1`
lol2=`cut -d : -f 3 $1`
lol3=`paste $lol $lol2`
echo "$lol3"

då får jag ett felmeddelande som säger att paste inte kan öppna martin....
Martin är det första namnet i variblen lol.

Permalänk
Medlem

Har inte provat, men testa att sätt $lol och $lol2 innom "snuttar".
Dvs;

lol3=`paste "$lol" "$lol2"`

Visa signatur

01001000 01100001 01110010 00100000 01100100 01110101 00100000 01110100 01110010 10000110 01101011 01101001 01100111 01110100 00111111 00100000 00111010 00101001

Permalänk
Medlem

paste är för filer, för att lägga samman de båda variablerna till en sträng behöver du endast.

CONCAT="$var1 $var2"

Visa signatur

"Stallman to Dvorak: Welcome to freedom, your rulebook is in the mail" - Fake Steve Jobs
rfc-1925 - The Twelve Networking Truths

Permalänk
Medlem

Jag skriver såhär
lol=`cut -d : -f 2 $1`
lol2=`cut -d : -f 3 $1`
CONCAT="$lol $lol2"
echo "$CONCAT"

Den skriver dom såhär nu

namn1
namn2
namn3
....
efternamn1
efternamn2
.....
jag vill att det ska skrivas
namn1 efternamn1
namn2 efternamn2
...

Permalänk
Medlem

Då kan du göra så här:

cut -d : --output-delimiter " " -f 2,3 filnamn

Permalänk
Medlem

eller för den delen:

(entity@ran ~): awk -F":" '{print $2 " " $3}' test Martin Malmström Urban Uv Bertil Bertilsson Ola Olsson Vilhelm Valfridsson

om du istället beskriver vad som du vill göra med scriptet så är det en aning lättare att hjälpa.

Visa signatur

"Stallman to Dvorak: Welcome to freedom, your rulebook is in the mail" - Fake Steve Jobs
rfc-1925 - The Twelve Networking Truths