On 15/08/2018 00:35, Dan Langille wrote: >> On Aug 14, 2018, at 2:55 PM, Mark Millard via freebsd-ports >> <freebsd-ports@freebsd.org> wrote: >> >> >> Dan Langille dan at langille.org wrote on >> Tue Aug 14 17:54:01 UTC 2018 : >> >>> . . . >>> At https://dev.freshports.org/www/p5-CGI/ you can see: >>> >>> CONFLICTS: p5-CGI.pm-[1-3]* >>> . . . >>> To extract the PKGNAME values from the CONFLICTS I will need to remove >>> everything after the trailing dash. >>> . . . >> >> p5- >> vs. >> p5-CGI.pm- >> vs. >> p5-CGI.pm-[1- >> >> It looks to me like "trailing dash" probably has a >> complicated definition where some "-"(s) may exist >> that are to be ignored after the one of interest. >> In the example I'm guessing that the middle >> "-" is intended (so "p5-CGI.pm-"). > > Agreed. The hard part is identifying the regex and deleting it from > consideration. >
If you don't mind spawning a new process, you can just do: % pkg search -qg 'p5-CGI.pm-[1-3]*' p5-CGI.pm-3.63_1,1 This does assume your pkg(8) is configured to use a repository with all possible packages available. The default FreeBSD repositories are a good choice in that regard. Or if you already have a database table with all of the package names and versions, then you'll presumably want to change the glob expression into a regex match (in this case something like '^p5-CGI\.pm-[1-3].*') Unless there's a PG extension that allows using glob(3) to match strings? I can't see one after a pretty cursory search. (sqlite has glob(3) support, which is what the pkg(8) command above is using under the hood.) Cheers, Matthew
signature.asc
Description: OpenPGP digital signature