Ben tüm adam sayfalarında tire içeren bir desen aramak için bir komut bulmaya çalışıyorum.
Baktım man man
ve şu 3 seçeneği buldum:
-K
,--global-apropos
Tüm manuel sayfalarda metin arayın. Bu kaba-kuvvetli bir araştırmadır ve muhtemelen biraz zaman alacaktır; yapabiliyorsanız, aranması gereken sayfa sayısını azaltmak için bir bölüm belirtmelisiniz. Arama terimleri basit dizeler (varsayılan) veya
--regex
seçenek kullanılıyorsa normal ifadeler olabilir .
-w
,--where
,--path
,--location
Gerçekte manuel sayfaları görüntülemeyin, ancak biçimlendirilecek kaynak nroff dosyalarının konumlarını yazdırın.
-S list
,-s list
,t--sections=list
Liste, aranacak sıraya özel manuel bölümlerin iki nokta üst üste veya virgülle ayrılmış listesidir. Bu seçenek
$MANSECT
ortam değişkenini geçersiz kılar . (-s
Yazım, Sistem V ile uyumluluk içindir.)
Onları mark-modified-lines
açıklanan bir readline seçeneği olan desen aramak için birleştirmeye çalıştım man bash
:
$ man -s1 -Kw mark-modified-lines
Ancak herhangi bir sayfa bulamıyor:
No manual entry for mark-modified-lines
Ve komut kodla birlikte çıkar 16
.
Komutun sözdiziminin yanlış olduğunu düşündüm, ancak öyle görünmüyor, çünkü bu komut sistemimde kelimeyi içeren 5 adam sayfasını doğru bir şekilde buluyor guitar
:
$ man -s1 -Kw guitar
/usr/share/man/man1/ffmpeg-all.1.gz
/usr/share/man/man1/ffserver-all.1.gz
/usr/share/man/man1/ffplay-all.1.gz
/usr/share/man/man1/ffmpeg-filters.1.gz
/usr/share/man/man1/ffprobe-all.1.gz
Belki de kelimedeki tirelerin bir soruna neden olduğunu düşündüm. İçinde man bash
, --regex
aşağıdaki gibi açıklanan seçeneği buldum :
--regex
Her sayfa bağımsız değişkeniyle adlarının herhangi bir bölümü veya açıklamalarıyla eşleşen tüm sayfaları olduğu gibi normal bir ifade olarak gösterin
apropos(1)
. Normal bir ifade ararken genellikle "en iyi" sayfa seçmenin makul bir yolu olmadığından, bu seçenek ima eder-a
.
Bu seçeneği kullanmaya ve kelimeyi , tirelerin kendilerinin herhangi bir karakterle eşleşmesi gereken metakarakter ile değiştirildiği mark-modified-lines
normal ifade ile değiştirmeye çalıştım :mark.modified.lines
.
$ man -s1 -Kw --regex 'mark.modified.lines'
Metnin bash
kılavuz sayfasına yazıldığını biliyorum, yine de herhangi bir sayfa yazdırmıyor .
Normal .
ifadedeki metakarakter , beklendiği gibi ayrıştırılmış gibi görünüyor, çünkü bu komut:
$ man -s1 -Kw --regex 'mark.mo'
Baskılar:
/usr/share/man/man1/x11perfcomp.1.gz
/usr/share/man/man1/xditview.1.gz
Ve bu 2 manajın ( x11perfcomp
, xditview
) her ikisi de normal ifade ile eşleştirilir mark.mo
. Daha spesifik olarak, man x11perfcomp
bu satırı içerir:
Mark Moraes wrote the original scripts to compare servers.
^^^^^^^
Ve man xditview
bu satırı içerir:
Mark Moraes (University of Toronto)
^^^^^^^
Ancak man -s1 -Kw --regex 'mark.mo'
bash man sayfasını yazdırmaz:
/usr/share/man/man1/bash.1.gz
Beklediğim gibi, bu satırı içerdiğinden beri:
mark-modified-lines (Off)
^^^^^^^
Man sayfalarında tire içeren bir desen aramak mümkün müdür?