I have a file that looks like this:
1   0.1951  0.1766  0.1943  0.1488  
0.1594  0.2486  0.2044  0.2013  0.1859  
0.1559  0.1761  0.1666  0.1737  0.1595  
0.1940  1   0.2398  0.1894  0.1532  
0.1749  0.2397  1   0.1654  0.1622  
0.1940  0.1895  0.1659  1   0.1384  
0.1489  0.1547  0.1648  0.1390  1   
0.1840  0.2472  0.2256  0.2281  0.1878  
Somehow it's created in windows so it has this irritating \r character at the end. But I am running my shell line in linux.
In python I could have read the file and do a line.strip('\r') while looping through the lines in the file. But i have to use shell to run a loop and somehow the '\r' keep appearing.
Is there any way to remove it while in the while loop? I am trying to do a loop for this script in shell: https://github.com/alvations/meanie/blob/master/amgm.py:
# -*- coding: utf-8 -*-
import math, operator
def arithmetic_mean(x): # x is a list of values.
  """ Returns the arithmetic mean given a list of values. """
  return sum(x)/len(x)
def geometric_mean(x): # x is a list of values
  """ Returns the geometric mean given a list of values. """
  return math.pow(reduce(operator.mul, x, 1), 1/float(len(x)))
def arigeo_mean(x, threshold = 1e-10): # x is a list of values
  arith = arithmetic_mean(x)
  geo = geometric_mean(x)
  while math.fabs(arith - geo) > threshold: 
    [arith,geo] = [(arith + geo) / 2.0, math.sqrt(arith * geo)]
  return arith
def main(means):
  print means
  means = map(float,means)
  print "arithmetic mean = ", arithmetic_mean(means)
  print "geometric mean = ", geometric_mean(means)
  print "arithmetic-geometric mean = ", arigeo_mean(means)
if __name__ == '__main__':
  import sys
  if len(sys.argv) < 2:
    sys.stderr.write('Usage: python %s mean1 mean2 mean3 ... \n' % sys.argv[0])
    sys.exit(1)
so I tried the following shell line to iterate through my textfile:
alvas@ubi:~/git/meanie$ while read line; do python amgm.py $line; done < out.tab
and got these errors:
['1', '0.1951', '0.1766', '0.1943', '0.1488', '\r']
Traceback (most recent call last):
  File "amgm.py", line 32, in <module>
    main(sys.argv[1:])
  File "amgm.py", line 22, in main
    means = map(float,means)
ValueError: could not convert string to float: 
['0.1594', '0.2486', '0.2044', '0.2013', '0.1859', '\r']
Traceback (most recent call last):
  File "amgm.py", line 32, in <module>
    main(sys.argv[1:])
  File "amgm.py", line 22, in main
    means = map(float,means)
ValueError: could not convert string to float: 
['0.1559', '0.1761', '0.1666', '0.1737', '0.1595', '\r']
Traceback (most recent call last):
  File "amgm.py", line 32, in <module>
    main(sys.argv[1:])
  File "amgm.py", line 22, in main
    means = map(float,means)
ValueError: could not convert string to float: 
['0.1940', '1', '0.2398', '0.1894', '0.1532', '\r']
Traceback (most recent call last):
  File "amgm.py", line 32, in <module>
    main(sys.argv[1:])
  File "amgm.py", line 22, in main
    means = map(float,means)
ValueError: could not convert string to float: 
['0.1749', '0.2397', '1', '0.1654', '0.1622', '\r']
Traceback (most recent call last):
  File "amgm.py", line 32, in <module>
    main(sys.argv[1:])
  File "amgm.py", line 22, in main
    means = map(float,means)
ValueError: could not convert string to float: 
['0.1940', '0.1895', '0.1659', '1', '0.1384', '\r']
Traceback (most recent call last):
  File "amgm.py", line 32, in <module>
    main(sys.argv[1:])
  File "amgm.py", line 22, in main
    means = map(float,means)
ValueError: could not convert string to float: 
['0.1489', '0.1547', '0.1648', '0.1390', '1', '\r']
Traceback (most recent call last):
  File "amgm.py", line 32, in <module>
    main(sys.argv[1:])
  File "amgm.py", line 22, in main
    means = map(float,means)
ValueError: could not convert string to float: 
['0.1840', '0.2472', '0.2256', '0.2281', '0.1878', '\r']
Traceback (most recent call last):
  File "amgm.py", line 32, in <module>
    main(sys.argv[1:])
  File "amgm.py", line 22, in main
    means = map(float,means)
ValueError: could not convert string to float: 
Note: I'm NOT allowed to change the python script though =(
 
     
     
     
    