Я бы, наверное, сделал что-то подобное, используя awk
:
% echo '2012-01-10 21:27:52.811,,ABC -- No lat/long
2012-01-10 21:27:52.811,37.8889329,-112.1876328,XYZ -- with lat long
' | awk -F',' -v OFS=',' '
$2 && $3 {
$2 = "\"" $2
$3 = $3 "\""
}
1
'
2012-01-10 21:27:52.811,,ABC -- No lat/long
2012-01-10 21:27:52.811,"37.8889329,-112.1876328",XYZ -- with lat long
Предполагается, что поля разделены запятыми при входе и выходе.
Если второе и третье поля заполнены, то
- Поставьте
"
перед вторым полем
- Поставьте
"
после третьего поля
Печать всех строк (1
).
Здесь много предположений, поэтому вам придется выкопать книгу sed & awk и настроить ее в соответствии с вашими потребностями.