Я новичок в bash сценариях, и я пытаюсь преобразовать файл, который:
- CSV
- Имеет случайные скачки строк, которые нарушают формат ( неверные данные от пользователя в CSV)
Результатом должен быть обработанный файл, который правильно разделяет строки (строки из набора элементов / столбцов), удаляя случайные переходы.
Мой первый подход состоял в том, чтобы удалить все скачки строки, используя
variable=$(cat $1)
tr -d "\n" $variable > $variable
, а затем, читая char по char, ища ',' со счетчиком, и добавляя скачок строки после каждого установленного числа из них были найдены. При попытке сделать это, я нашел информацию на while IFS= read
и попробовал следующее:
while IFS=, read -r col1 col2 col3 col4 <<< $variable; do
echo "$col1" "$col2" "$col3" "$col4" '\n'
done
Я явно чего-то там упускаю (я даже считаю, что пока l oop Я должен уже убрать скачки строки, пожалуйста, исправьте меня об этом), и я не уверен, как продолжать делать это. Я не ищу кучу кода, который делает эту работу, но пытаюсь найти кого-то, кто мог бы указать мне правильное направление (возможно, я не понимаю IFS, или мне нужно что-то обработать до этого шага ... что бы это ни было).
Заранее спасибо.
edit: я удалил переход строки, который я добавил в эхо, и теперь он печатает col1 col2 col3 col4 и никогда не заканчивается, поэтому я очевидно, что перед печатью невозможно связать каждый элемент из файла с переменными.