Ik heb een ASCII bestand van 2183162 regels en wil daar regels uit verwijderen die aan een bepaalde voorwaarde voordoen. Ik dacht dit met een kornshell scriptje te kunnen oplossen.
Het gaat dus om een ASCII bestand met velden gescheiden door een / teken. Ik wil in mijn output alleen die regels zien waarbij veld2 leeg is.
Dit is het scriptje:
Als ik dit scriptje uitvoer dan lijkt het wel te doen wat het moet doen maar loopt ontzettend traag. Een core van de Dual Core 2.1 GHz Power 5+ machine staat dan continu 100% belast en verbruikt enorm veel kernel CPU. De vraag is dus of hetgeen ik wil uitvoeren ook op een snellere/efficiëntere manier uit te voeren valt.
Het gaat dus om een ASCII bestand met velden gescheiden door een / teken. Ik wil in mijn output alleen die regels zien waarbij veld2 leeg is.
Dit is het scriptje:
code:
1
2
3
4
5
6
7
| while read line ; do veld1=`echo $line | cut -f1 -d"/"` veld2=`echo $line | cut -f2 -d"/"` if [[ $veld2 = "" ]] ; then echo $veld1 >> outputlijst.txt fi done < inputlijst.txt |
Als ik dit scriptje uitvoer dan lijkt het wel te doen wat het moet doen maar loopt ontzettend traag. Een core van de Dual Core 2.1 GHz Power 5+ machine staat dan continu 100% belast en verbruikt enorm veel kernel CPU. De vraag is dus of hetgeen ik wil uitvoeren ook op een snellere/efficiëntere manier uit te voeren valt.