[bash] variabele opsplitsen

Pagina: 1
Acties:
  • 22 views sinds 30-01-2008

  • cenix
  • Registratie: September 2001
  • Laatst online: 22-02 13:22
Hoe kan ik een variabele in diverse delen opsplitsen.
Ik kan hier niets over vinden op google, got, etc... :D 8)7

inhoud variabele (gescheiden door komma) en met een variabel aantal
code:
1
var="test,onzinnig,woord3"


Geprobeerd zijn cut, while & awk, maar ik krijg het niet voor elkaar

code:
1
2
3
for MEMBERS in `cat ${var} | cut -d, -f1`; do
  echo "${MEMBERS}"
done


Hij pakt hier alleen het 1e veld, niet de rest...

ook met echo ${var} | cut -d, -f1 werkt het niet...

code:
1
2
3
4
cat ${var} | while IFS=, read name
do
  echo "${name}"
done


en
code:
1
2
3
for MEMBERS in `cat ${var} | awk -F, '{ print $0 }'`; do
  echo "${MEMBERS}"
done


ook cat vervangen door echo werkt niet..

Hoe kan ik deze opsplitsen? en welk commando is daarbij handig?

  • cenix
  • Registratie: September 2001
  • Laatst online: 22-02 13:22
Ik heb het nu als volgt opgelost (thanx to een projectgenoot)


code:
1
2
3
4
echo ${members} | tr ',' '\n' > membersingroup
for MEMBERS in `cat /home/groep4/cgi-bin/membersingroup`; do
  echo "${MEMBERS}"
done


niet echt heel netjes, maar het werkt en totdat we een betere oplossing hebben is dit goed.

Als iemand iets beter weet, ik hou me aanbevolen.

[ Voor 15% gewijzigd door cenix op 05-12-2003 12:41 ]


  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

met de '-f' geef je het field nummer aan; dus:
code:
1
2
3
echo a,b,c | cut -d, -f1
echo a,b,c | cut -d, -f2
echo a,b,c | cut -d, -f3
:?

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • Wilke
  • Registratie: December 2000
  • Laatst online: 23-02 22:21
Projectgenoot? Dus je laat ons hier je huiswerk maken begrijp ik. Dat is natuurlijk niet de bedoeling.

Daarnaast, als je de manualpage van 'cut' leest kun je uitvinden wat de '-f' parameter doet, en dat de resultaten die je krijgt dus precies kloppen. Je kunt ook dingen doen als '-f1-3', bijvoorbeeld. Maar zie daarvoor verder de manpage.

Bovendien is dit (of vergelijkbaar) ook al tig keer voorbij gekomen.

Op slot dus.

Dit topic is gesloten.