在bash脚本中从CSV文件读取数据时出现问题

时间:2020-01-22 10:33:18

标签: bash

我正在编写一个bash脚本,它将读取CSV文件并通过一些字符串连接在控制台中打印结果。

当在bash脚本中将一个字符串覆盖另一个字符串时,我遇到一个问题。下面是给出的全部代码,我正在Windows上安装的Gitbash中运行它。

下面有两行的CSV File1

Apple,Cycle
Orange,Lamborgini

脚本:

while IFS=, read -r x y
    do
            fruit=$x
            vehicle=$y
            echo "$y ran"
done < File1.csv

实际输出:

ranle
ranborgini

预期输出:

Cycle ran
Lamborgini ran

2 个答案:

答案 0 :(得分:2)

我发现输出中包含需要删除的回车符。对于上面的示例,可以使用tr工具完成此操作:

:nnoremap <Space><Tab> :e#<CR>

现在它正在提供预期的输出。

答案 1 :(得分:1)

在Windows文件上,可能包含 CLRF windows带有回车符的新行 ,而不是Unix的行。

检查this SO question and answers上用于转换文件/行/字符串中的新行的选项。