Toon posts:

[Bash] ls in een for lus

Pagina: 1
Acties:

Verwijderd

Topicstarter
Wat ik doe:

code:
1
2
3
4
5
6
dir=`ls|more`

for lijn in $dir
do
        ...
done


Wat is het probleem nu ?
-> Als er files/dirs tussenzitten die directories bevatten dan werkt die for lus methode niet want dan neemt ie de "stukken" apart ("Mijn Documenten" bv wordt "Mijn" en "Documenten"). Bestaat er geen workaround voor dit probleem want ik vinnem niet opt eerste zicht met te zoeken :?

ps: sorry voor slechte titel ... kon niks beters verzinnen :)

  • Thijsch
  • Registratie: Februari 2002
  • Laatst online: 22-08 19:17
for i in `ls|more */* |grep hetgenedatjewilt`; do echo $i; done

hoewel het ook gewoon zo kan: ls */* |grep watjewilt ?

of begrijp ik je verkeerD?

Verwijderd

Topicstarter
ja maar ik wil per file iets uitvoeren ... het probleem zit em niet echt in die ls, maar als ik IN die for lus ga dan haalt ie files met spaties erin als stukken op ipv als 1 file ...

Ik zoek een manier om die toch als 1 file te kunnen opvragen ...

  • Thijsch
  • Registratie: Februari 2002
  • Laatst online: 22-08 19:17
for i in `ls|more en nog wat commandos om de files uit te zoeken`
do

alles wat je wilt. de filenaam staat in $i

done

datmoet gewoon werken hoor?

Verwijderd

Topicstarter
ja tuurlijk
maar je begrijpt me verkeerd :)

Zo doe ik het ook en dat werkt ... totdat je bv een file tegenkomt die zo noemt: "Mijn documenten.txt" en dan zit in de variabele $i 2 delen, nl "Mijn" en "documenten.txt". Hier is het toch zo :? Als dit niet normaal is doe ik toch iets serieus verkeerd.

Verwijderd

Topicstarter
Gedverd !
Heb het :)

code:
1
2
3
4
for file in "$( ls )"
do
        echo "$file"
done


doet het dus wel perfect met de spaties :)
Sorry voor het storen.
Pagina: 1