Bash将小于符号的字符串连接到从文件读取的字符串

Bash将小于符号的字符串连接到从文件读取的字符串,bash,sed,concatenation,cat,Bash,Sed,Concatenation,Cat,标题说明了一切。我知道这在不读取文件时是可能的,因为它是有效的。然而,当我试图修改它以从文件中读取值时,我会得到奇怪的结果 $ num1="1.291858E+01" $ num2="1E-5" $ echo $num1'>'$num2 1.291858E+01>1E-5 $ cat sum.csv 1.291858e+01 $ num1=`cat sum.csv | sed -e 's/e/E/'` $ echo $num1 1.291858E+01 $ e

标题说明了一切。我知道这在不读取文件时是可能的,因为它是有效的。然而,当我试图修改它以从文件中读取值时,我会得到奇怪的结果

$ num1="1.291858E+01"
$ num2="1E-5"
$ echo $num1'>'$num2
    1.291858E+01>1E-5
$ cat sum.csv
    1.291858e+01
$ num1=`cat sum.csv | sed -e 's/e/E/'`
$ echo $num1
    1.291858E+01
$ echo $num1'>'$num2
    >1E-5858E+01
编辑:

我希望结果会很好

1.291858E+01>1E-5
这是我直接从终端复制的内容

test $ num1="1.291858E+01"
test $ num2="1E-5"
test $ echo $num1'>'$num2
1.291858E+01>1E-5
test $ cat sum.csv
1.291858e+01
test $ num1=`cat sum.csv | sed -e 's/e/E/'`
test $ echo $num1
1.291858E+01
test $ echo $num1'>'$num2
>1E-5858E+01
test $

您的行以sum.csv中的控件Ms结尾,可能是因为它是在Windows上创建的。使用
cat-v sum.csv
查看它们,然后运行
dos2unix
或类似程序删除它们。

您的行以sum.csv中的控件Ms结尾,可能是因为它是在Windows上创建的。使用
cat-v sum.csv
查看它们,然后运行
dos2unix
或类似程序删除它们。

习惯性地用双引号引用变量展开。此外,我无法重现最后一行。它产生了我所期望的
1.291858E+01>1E-5
。我想你把没告诉我们的事情搞砸了。这里的问题是什么?作为一种习惯,用双引号提供一个精确的预期outputQuote变量扩展的输入。此外,我无法重现最后一行。它产生了我所期望的
1.291858E+01>1E-5
。我想你把没告诉我们的事情搞砸了。这里的问题是什么?为输入提供准确的预期输出