code_junkie

KSH scripting: how to split on ',' when values have escaped commas?

Nov 11th, 2011
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.44 KB | None | 0 0
  1. NAME1 VALUE1,NAME2 VALUE2,NAME3 VALUE3, etc
  2.  
  3. read l
  4. IFS=","
  5. set -A nvls $l
  6. echo "$nvls[2]"
  7.  
  8. NAME1 VALUE1,NAME2 VALUE2_1,VALUE2_2,NAME3 VALUE3, etc
  9.  
  10. read l
  11. l=${l//\,/!!}
  12. IFS=","
  13. set -A nvls $l
  14. unset IFS
  15. echo ${nvls[2]/!!/,}
  16.  
  17. sed -e 's/([^]),/1
  18. /g;s/$/
  19. /
  20.  
  21. NAME1.1 VALUE1.1
  22. NAME1.2 VALUE1.2_1,VALUE1.2_2
  23. NAME1.3 VALUE1.3
  24. <empty line>
  25. NAME2.1 VALUE2.1
  26. <second record continues>
  27.  
  28. while read name value ; do
  29. echo "$name => $value"
  30. done
Add Comment
Please, Sign In to add comment