Recherche de chaînes de caractères

De nombreux termes de recherche peuvent prendre une chaîne de caractères comme paramètre et la faire correspondre avec un ou plusieurs champs d'un paquet. Les chaînes peuvent être ou non données entre guillemets (« " »), de sorte que « ?name(scorch) » et « ?name("scorch") » effectueront la même recherche. Si vous entrez une chaîne de recherche avec des guillemets, vous pouvez inclure le caractère guillemet dans la chaîne en le faisant précéder par une barre oblique inverse (« \ ») : par exemple, « ?description("\"easy\"") » sélectionnera tous les paquets dont la description contient la chaîne « "easy" ».

Si vous entrez une chaîne « nue », c'est-à-dire sans guillemets, alors aptitude considérera que la chaîne sera terminée lorsqu'il rencontrera une parenthèse fermante ou la virgule précédant le second argument du terme de recherche[14]. Pour retirer la signification particulière à ces caractères, faites-les précéder d'un tilde (« ~ »). Par exemple « ?description(etc)) » est une erreur de syntaxe, car la première parenthèse fermante « ) » termine le terme ?description et la deuxième ne correspond à aucune parenthèse ouvrante. En revanche, « ?description(etc~)) » sélectionne tous les paquets dont la description contient le texte « etc) ». Il y a des considérations supplémentaires si vous utilisez la forme courte d'un terme. Consultez la section intitulée « Raccourcis pour les termes de recherche » pour les détails.

La plupart des recherches de texte (pour les noms de paquets, les descriptions, etc.) sont des expressions rationnelles insensibles à la casse. Une expression rationnelle sera en correspondance avec un champ dès que n'importe quelle portion du texte correspond à l'expression rationnelle. Par exemple, « ogg[0-9] » sera en correspondance avec « libogg5 », « ogg123 » et « theogg4u ». Certains caractères ont une signification particulière à l'intérieur d'une expression rationnelle [15], donc si vous voulez les utiliser dans des recherches, vous devez les protéger avec une barre oblique inverse : par exemple, pour trouver « g++ », vous devrez utiliser le motif « g\+\+ ».

Les caractères « ! » et « | » ont une signification particulière à l'intérieur des motifs de recherche. Afin d'inclure ces caractères dans une chaîne sans guillemets, vous pouvez les faire précéder par un tilde (« ~ »). Par exemple, pour faire correspondre les paquets dont la description contient « grand » ou « oblique », utilisez le motif « ?description(grand~|oblique) ». Vous trouverez cependant plus pratique peut-être d'utiliser simplement une chaîne de caractères entre guillemets : « ?description("grand|oblique") ».



[14] aptitude ne traitera la virgule comme un caractère spécial qu'en cas de présence d'un deuxième argument, donc (par exemple) « ?name(apt,itude) » cherche la chaîne « apt,itude » dans le champ du nom (« Name ») des paquets.

Bien que ce comportement soit bien défini, il peut surprendre. Il est recommandé d'utiliser des chaînes entre guillemets pour tous les motifs qui contiennent des caractères qui pourraient avoir un sens particulier.

[15] Les caractères avec une signification particulière sont : « + », « - », « . », « ( », « ) », « | », « [ », « ] », « ^ », « $ » et « ? ». Remarquez que certains de ceux-ci sont aussi des caractères spéciaux d'aptitude, donc si vous voulez, par exemple, taper un « | » littéral, il vous faudra le protéger deux fois : « ?description(\~|) » fera correspondre les paquets dont la description contient une barre verticale (« | »).