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. [14] 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 the section called “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 [15] , 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").

[14] 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.

[15] 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 (|).