Я извлекаю данные из файла CSV, экспортированного из excel.Обрезка нового символа строки из строки в bash
CSV-файл выглядит следующим образом:
Category,Feature,Description,app1,app2,app3,app4,app5,app6,app7
Employee Relations,Employee Management,,y,y,n,y,y,y,n
Employee Relations,Employee Availability,,y,y,n,n,y,y,n
проблема конец подача характер линия становится на пути. принять следующий код:
title=$(head -n 1 $1) # grab the first row
title=`echo $title | sed -e 's/^ *//' -e 's/ *$//'` # me trying to fix. I think this is the issue
echo $title #this seems to look right
IFS=',' read -a titline <<<"$title" # make it an array
for ((i = 0 ; i < ${#titline[@]} ; i++)) do
echo "[[${titline[$i]}]]"
done
распечатывает:
Category,Feature,Description,app1,app2,app3,app4,app5,app6,app7
[[Category]]
[[Feature]]
[[Description]]
[[app1]]
[[app2]]
[[app3]]
[[app4]]
[[app5]]
[[app6]]
]]app7
, как вы можете видеть, что последняя строка должна быть:
[[app7]]
и это завинчивание с остальной частью сценария.
Я не уверен, что я делаю неправильно, и могу использовать указатель
что делает ваш скрипт делать? ваша конечная цель? Я чувствую, что awk будет лучшим способом справиться с csv. – Kent