Search patten 可以用在命令列上的 aptitude search 參數
,也可用在 aptitude 中使用 / 搜尋時。
命令列上就像這樣用:
- 代碼: 選擇全部
# 找出已安裝套件中,名稱有 emacs 的套件。
$ aptitude search '~i~nemacs'
# 找出可升級的 gnome or kde 相關程式
$ aptitude search '~U(~sgnome|~skde)'
# 找出名稱中或description 中有 ftp 字樣的未安裝套件
$ aptitude search '~g(~nftp|~d\<ftp\>)'
# 有哪些 MTA 軟體可以安裝
$ aptitude search '~Pmail-transport-agent'
下面是小弟將 aptitude README 中,Search Pattern 一節翻譯後的內容。
其實這篇只是告知大家有這樣的東西,但不推薦直接閱讀小弟的翻譯。因為小弟翻譯能力可能很差,還是建議大家看原文啦。
aptitude 中按「求助」->「用戶手冊」
或是看 /usr/share/doc/aptitude/README
- 代碼: 選擇全部
搜尋樣式(Search Pattern)
當你搜尋一個套件,或在 aptitude 中設定一個顯示限制(Display
Limit),你所輸入的字串就被認為是一個搜尋樣式(Search Pattern)。
雖然搜尋樣式最為基本的使用方式就是去符合套件名稱,但
aptitude 允許你做更為複雜的搜尋。
一個搜尋樣式由一個或更多條件(有時候被稱為「terms」)組成;也
就是說,套件符合了該樣式,也就符合了所有的 terms。Terms 通常
以 ~ 為開頭,並跟隨著一個用來判別 term 類型的字元,然後緊接
著該 term 需要的其他文字。
大部份的文字搜尋(像是套件名稱、描述(descriptions)等等)使用
無關呼大小寫的正規表示式(regular expressions)。這代表你必須
在搜尋中以反斜線來防止正規表示示的特殊字元做特殊解釋(如,要
找「g++」,你應該用「g\+\+」作為搜尋樣式)。
下面列出可使用的 terms 類型:
name
符合此正規表示式的套件名稱。這是「預設」的搜尋模
式,而且不需要以 ~ 字元為開頭。
[注]
要比對包含多個不同子字串的套件,可以用 ~n 比對
(下面將會談到);例如,「~napti~tude」
!term
不符合此 term 的套件。例如,「!~b」會找出沒有
「broken」的套件。
[注]
要在正規表示式中使用「!」字元,必須要「跳脫」
來防止 aptitude 將他解讀為 NOT term:「~!」。
term1 | term2
符合 term1 或 term2 的套件。
[注]
要在正規表示式中使用「!」字元,必須要「跳脫」
來防止 aptitude 以為他是 OR term:「~|」
(term)
符合 term 的套件;這對於指定複雜的分類表示式是很
有用的。舉例來說,「~D(perl|python)」會找出任何相依
於名稱中有 perl 或 python 的套件的套件。
~Aarchive
符合那些可由 archive 中取得的套件,其中 archive
可用正規表示式。例如,「~Atesting」會找出任何可由
testing archive 取得的套件。
~Btype
符合並未滿足某類(type)相依性(「broken」)的套件。
type 可是是「depends」、「predepends」、「recommends」
、「suggests」、「conflicts」,或「replaces」。
~b
符合「broken」的套件;他們未滿足相依性(dependency)、
predependency、或衝突(conflicts)
~Cterm
符合那些與 term 符合的套件相衝突的套件。例如,
「~C~mburrows@debian.org」 會找出任何與我維護的套件
相衝突的套件。
~c
符合已被移除的套件,除了那些還保留著設定檔的(也就是,
被 remove 但沒有被 purge)
~D[type:]term
type 可能是「provides」或是其他上述 ~B 所說明的相依
性類型之一。如果沒有指定 type,預設會是 depends。
如果 type 是「provides」,就會符合那些 provide 符合
term 的套件(等同於 ~P)。否則,將會符合那些 type 類
型相依性符合該 term 的套件。
~ddescription
符合那些套件,看誰的 description 符合該正規表示式
description。
~E
符合那些必要的套件。
~F
這個 term 不會符合任何套件(「F」 意味著 「false」)。
~g
符合那些沒被安裝套件,或被自動安裝但沒被任何已安裝套
件相依的套件。
~i
符合當前已安裝的套件。
~M
符合被自動安裝的套件。
~mmaintainer
符合那些 Maintainer 欄位符合該正規表示式 maintainer
的套件。例如,「~mjoeyh」將會找出所有被 Joey Hess 維
護的套件。
~N
符合那些「新」套件。
~nname
符合那些名稱符合該正規表示式 name 的套件。例如,大多
符合「~n^lib」的套件就是這個樣子的函式庫。
~Oorigin
符合那些來源(origin)符合該正規表示式 origin的套件。
例如,「!~ Odebian」將會找出你電腦所有非官方的套件
(也就是不是從 Debian 套件庫取得的套件)。
~Pterm
找出那些 provide 中符合 term 的套件。例如,「~
Pmail-transport-agent」會符合所有 provide
「mail-transport-agent」的套件。
~ppriority
符合那些優先權(priority)為 priority 的套件;priority
必須是 extra、important、optional、required,或
standard。例如,「~prequired」符合所有優先權為
「required」的套件。
~R[type:]term
type 可能是 「provides」或是任何在文件中的 ~B 所提及
的相依性類型。如果沒有指定 type,預設上他會是
depends。
~ssection
符合那些 section 符合該正規表示式 section 的套件。
~T
這個 term 符合任何套件。例如,「~i~P~T」會符合所有已
安裝且被 provide 的套件。
~U
這個 term 符合所有可升級的已安裝套件。
~Vversion
符合那些版本(version)符合該正規表示式 version 的套件。
例如,「~Vdebian」會符合那些版本含有「debian」的套件。
~v
符合任何純 virtual 的套件;也就是說,他的名字由一個
套件 provide,或在相依性中提到,但沒有那個名稱的套件。
例如,「~v!~P~T」 符合所有為 virtual 而且沒被任何套
件 provide;即,套件被相依但不存在。