Если вам нужны все числа после UUIDs in this bucket
, вы можете использовать sed
вот так:
$ zcat file.gz | sed -n 's/^.*UUIDs in this bucket //p'
8501792126581991569,8073766106536916628,4830289023695906800,6135982080116553120,8306484440313978157,9040948912536460872,8471856544054164043,5431263453539111247,7661719762428556576
6501792126581991569,8073766106536916628,4830289023695906800,6135982080116553120,8306484440313978157,9040948912536460872,8471856544054164043,5431263453539111247,7661719762428556576
Или используйте perl и выведите полный оператор SQL:
$ zcat file.gz | perl -ne 'chomp;if(s/^.*UUIDs in this bucket //){@uuids=split(/,/); $k{$_}++ for @uuids} END{ print "insert into sometable (uuid) values (", join ",",map{qq/"$_"/} keys(%k); print ");\n"}'
insert into sometable (uuid) values ("6135982080116553120","4830289023695906800","8501792126581991569","9040948912536460872","7661719762428556576","8471856544054164043","8306484440313978157","6501792126581991569","5431263453539111247","8073766106536916628");
Или, чуть более разборчиво:
$ zcat file.gz |
perl -ne 'chomp;
if(s/^.*UUIDs in this bucket //){
@uuids=split(/,/);
$k{$_}++ for @uuids
}
END{
print "insert into sometable (uuid) values (",
join ",",map{qq/"$_"/} @uuids;
print ");\n"
}'
insert into sometable (uuid) values ("6501792126581991569","8073766106536916628","4830289023695906800","6135982080116553120","8306484440313978157","9040948912536460872","8471856544054164043","5431263453539111247","7661719762428556576");