Я новичок в bash-скриптинге и пытаюсь это исправить более 8 часов.
Я искал на StackOwerflow и пробовал ответы, чтобы соответствовать моим потребностям, но безуспешно.
Я хочу использовать скрипт bash, чтобы изменить значение даты в CSV-файле на текущую дату.
Я использую фиктивный файл .csv (http://eforexcel.com/wp/wp-content/uploads/2017/07/100-Sales-Records.zip) и хочу изменить шестое значение (дату) на текущую дату.
Что я делал до сих пор:
Я создал одну строку CSV для проверки сценария
cat oneline.csv:
Австралия и Океания, Тувалу, Детское питание, офлайн, H, 5/28/2010, 669165933,6 / 27 / 2010,9925,255.28,159.42,2533654.00,1582243.50,951410.50
Затем я протестировал однострочный скрипт:
echo `cat oneline.csv | awk -F, '{ print $1"," $2"," $3"," $4"," $5","}'` `date` `cat oneline.csv |awk -F, '{print $7"," $8"," $9"," $10"," $11"," $12"," $13"," $14"\n"}'
тогда у меня есть этот код для всех 100 строковых файлов в source.sh:
#I want to change 6th value for every line of source.csv to current date and keep the rest and export it to output.csv
while read
do
part1=$(`cat source.csv | awk -F, '{ print $1"," $2"," $3"," $4"," $5","}'`)
datum=$(`date`)
part2=$(`cat source.csv |awk -F, '{print $7"," $8"," $9"," $10"," $11"," $12"," $13"," $14"\n"}'`)
echo `$part1 $datum $part2`
done
и я ожидаю выполнить команду как ./source.sh> output.csv
То, что я хочу для файла из 100 строк, должно иметь следующий результат:
Питание, офлайн, Ч, Чт 17 января 06:34:03 EST 2019 , 669165933,6 / 27 / 2010,9925,255.28,159.42,2533654.00,1582243.50,951410.50
Не могли бы вы подсказать, как изменить код для получения результата?