|
|
|
|
|
by asicsp
1092 days ago
|
|
If quoted string is the only thing you need to handle extra (i.e. no escaped quotes, newlines, etc) and if you have GNU awk: $ echo '"foo","bar,baz"' | awk -v FPAT='"[^"]*"|[^,]*' '{print $1}'
"foo"
$ echo '"foo","bar,baz"' | awk -v FPAT='"[^"]*"|[^,]*' '{print $2}'
"bar,baz"
For a more robust solution, see https://stackoverflow.com/q/45420535 or use other tools like https://github.com/BurntSushi/xsv |
|
echo '"foo","bar,baz","boo"' | awk -F"\",\"" '{print $1}' "foo
echo '"foo","bar,baz","boo"' | awk -F"\",\"" '{print $2}' bar,baz
echo '"foo","bar,baz","boo"' | awk -F"\",\"" '{print $3}' boo"
Realizing that I have to strip the quotes that remain.
Edit. formatting.
EDit, again, from your link, the following is more terse and too my taste (still needs strips):
awk -v FPAT='("[^"]*")+'