Конвертировать CSV-файл в XML с помощью сценариев оболочки - PullRequest
0 голосов
/ 06 ноября 2019

Парень, я сделал этот скрипт для генерации XML в Unix

#!/bin/bash

file_in="simple.csv"
file_out="simple.xml"
echo '<?xml version="1.0"?>' > $file_out
echo '<Customers>' >> $file_out

while IFS=$',' read -r -a arry
do
    echo '  <Customer>' >> $file_out
    echo '    <Name>'${arry[0]}'</Name>' >> $file_out
    echo '    <startDate>'${arry[1]}'</startDate>' >> $file_out
    echo '    <Country>'${arry[2]}'</Country>' >> $file_out
    echo '  </Customer>' >> $file_out
done < $file_in
echo '</Customers>' >> $file_out

Проблема в том, что я не хочу отображать тег страны, когда значение пустое / пустое, и я хочу отформатировать значение startDateбыть YYYY-MM-DD но ничего не получалось ....

То, что я пробовал, это

#!/bin/bash

file_in="simple.csv"
file_out="simple.xml"
echo '<?xml version="1.0"?>' > $file_out
echo '<Customers>' >> $file_out

while IFS=$',' read -r -a arry
do
    echo '  <Customer>' >> $file_out
    echo '    <Name>'${arry[0]}'</Name>' >> $file_out
    echo '    <startDate>date -d '${arry[1]}'</startDate>' >> $file_out // to make the date
    if(arr[2] != '')
        echo '    <Country>'${arry[2]}'</Country>' >> $file_out
    fi
    echo '  </Customer>' >> $file_out
done < $file_in
echo '</Customers>' >> $file_out
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...