我正在编写一个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
答案 0 :(得分:2)
我发现输出中包含需要删除的回车符。对于上面的示例,可以使用tr工具完成此操作:
:nnoremap <Space><Tab> :e#<CR>
现在它正在提供预期的输出。
答案 1 :(得分:1)
在Windows文件上,可能包含 CLRF windows带有回车符的新行 ,而不是Unix的行。
检查this SO question and answers上用于转换文件/行/字符串中的新行的选项。