Isso é bem simples usando perl
se ele tiver o Text::ParseWords
parser no core:
#!/usr/bin/env perl
use strict;
use warnings;
use Text::ParseWords;
use Data::Dumper;
my $q = '"Something, variable", another part, third one';
my @words = parse_line ( ',', 0, $q );
#dump words:
print Dumper \@words;
#just output first one:
print $words[0];
Ou para um-liner-ify para que você possa usá-lo no shell:
echo $q | perl -MText::ParseWords -e '@w=parse_line(',',0,<>);print $w[0]'
Que irá lê-lo a partir de STDIN e imprimir a primeira palavra 'analisada' em STDOUT.
(Ou você pode alimentá-lo via $ENV{q}
ou similar).