Searching for strings

Many search terms take a string as a parameter and match it against one or more fields of a package. Strings can be entered either with or without double quotes (「"」), so 「?name(scorch)」 and 「?name("scorch")」 will perform the same search. If you enter a search string using double quotes, you can include a literal double-quote in the search string by placing a backslash (「\」) immediately before it: for instance, 「?description("\"easy\"")」 will match any package whose description contains the string 「"easy"」.

If you enter a 「bare」 string, one not surrounded by double quotes, then aptitude will consider the string to have 「ended」 when it encounters the closing parenthesis or the comma before a second argument to the search term. [11] To remove the special meaning of these characters, place a tilde (「~」) directly before them. For instance, 「?description(etc))」 is a syntax error, because the first 「)」 ends the ?description term, and the second 「)」 does not correspond to any 「(」. In contrast, 「?description(etc~))」 matches any package whose description contains the text 「etc)」. There are additional considerations if you are using the shorthand notation for a term; see Shorthand for search terms項 for details.

Most textual searches (for package names, descriptions, etc) are performed using case-insensitive regular expressions. A regular expression will match against a field if any portion of the field matches the expression; for instance, 「ogg[0-9]」 will match 「libogg5」, 「ogg123」, and 「theogg4u」. Some characters have a special meaning within regular expressions [12] , so if you want to match them in searches you need to backslash-escape them: for instance, to find 「g++」, you should use the pattern 「g\+\+」.

The characters 「!」 and 「|」 have special meanings within search patterns. In order to include these characters in an unquoted string, you can place a tilde (「~」) directly before them. For instance, to match packages whose description contains either 「grand」 or 「oblique」, use the pattern 「?description(grand~|oblique)」. However, you will probably find it more convenient to simply use a quoted string in these cases: 「?description("grand|oblique")」.



[11] aptitude will only treat the comma as special if there is a second argument, so (for instance) 「?name(apt,itude)」 searches for the string 「apt,itude」 in the Name field of packages.

While this behavior is well-defined, it may be surprising; I recommend using quoted strings for any pattern that contains characters that could have a special meaning.

[12] Characters with a special meaning include: 「+」, 「-」, 「.」, 「(」, 「)」, 「|」, 「[」, 「]」, 「^」, 「$」, and 「?」. Note that some of these are also aptitude metacharacters, so if you want to type (for instance) a literal 「|」, it must be double-escaped: 「?description(\~|)」 will match packages whose description contains a vertical bar character (「|」).