从CSV文件读取json消息,而无需在shell脚本中删除任何字符

时间:2018-10-27 06:28:15

标签: bash shell csv

我有一个csv文件,我需要一个一行地读取而不删除任何字符,例如“;等”

in.csv

{ "customer": { "name": "abc", "email":"mailme2@xxx.com","account_classification": "xyz"} }    
{ "customer": { "name": "def", "email":"mailme2@xxx.com","account_classification": "xyz"} }    
{ "customer": { "name": "g,h", "email":"mailme2@xxx.com","account_classification": "xyz"} }

我的代码

declare -a demo=($(cat in.csv))
for i in "${demo[@]}"
do
echo "$i"
done

输出(预期输出)

{ "customer": { "name": "abc", "email":"mailme2@xxx.com","account_classification": "xyz"} }    
{ "customer": { "name": "def", "email":"mailme2@xxx.com","account_classification": "zyx"} }

我得到的输出(上面的代码输出):

"{ ""customer"": { ""name"": ""abc"", ""email"":""mailme2@xxx.com"",""account_classification"": ""xyz""} }" "{ ""customer"": { ""name"": ""def"", ""email"":""mailme2@xxx.com"",""account_classification"": ""xyz""} }" "{ ""customer"": { ""name"": ""g,h"", ""email"":""mailme2@xxx.com"",""account_classification"": ""xyz""} }

有人可以给我示例代码吗?

1 个答案:

答案 0 :(得分:0)

您可以使用类似的

while IFS= read -r line; do
   printf "%s\n" "${line}"
done < in.csv

或者您希望在将来的改进中更改生产线

sed 's/future_change/new_content/g' in.csv