[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: some problem in scripting.





On 6/14/07, William Pursell <bill.pursell@gmail.com> wrote:
L.V.Gandhi wrote:
> I created a .csv file in this format from a original file from the net.
> The last field here is the last field in original file also. I made this
> file as original file has empty lines and single field lines also.
> SYMBOL,HIGH_PRICE,LOW_PRICE,HI_52_WK,LO_52_WK
> BHARTIARTL,809.00,790.00,882.05,307.30
> BHEL,1327.00,1301.00,2918.65,1301.00
> I am using this script to find high/low
> #!/bin/bash
> rm -f highs
> rm -f lows
> touch lows
> for line in $(cat temp.csv)
> do
> low52=$(echo $line|cut -d, -f5)
> high52=$(echo $line|cut -d, -f4)
> low=$(echo $line|cut -d, -f3)
> high=$(echo $line|cut -d, -f2)
> stock=$(echo $line|cut -d, -f1)

I would suggest replacing this parsing with something simpler.
For example, to print the symbol followed by the {HI,LO}_52_WK
for each line in the file, you can do something as simple as:
#!/bin/bash

IFS=,
while read SYMBOL HIGH_PRICE LOW_PRICE HI_52_WK LO_52_WK
do
echo $SYMBOL: $HI_52_WK: $LO_52_WK
done < temp.csv

Simplifying the parsing might solve the problem.


Thanks for another variation of solution. However problem was ^M presence at the end of the line. I would like to know what is IFS=, does here.

--
L.V.Gandhi
http://lvgandhi.tripod.com/
linux user No.205042
Reply to: