Ben tüm adam sayfalarında tire içeren bir desen aramak için bir komut bulmaya çalışıyorum.
Baktım man manve şu 3 seçeneği buldum:
-K,--global-aproposTü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
--regexseçenek kullanılıyorsa normal ifadeler olabilir .
-w,--where,--path,--locationGerç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=listListe, aranacak sıraya özel manuel bölümlerin iki nokta üst üste veya virgülle ayrılmış listesidir. Bu seçenek
$MANSECTortam değişkenini geçersiz kılar . (-sYazım, Sistem V ile uyumluluk içindir.)
Onları mark-modified-linesaçı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, --regexaşağıdaki gibi açıklanan seçeneği buldum :
--regexHer 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-linesnormal ifade ile değiştirmeye çalıştım :mark.modified.lines.
$ man -s1 -Kw --regex 'mark.modified.lines'
Metnin bashkı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 x11perfcompbu satırı içerir:
Mark Moraes wrote the original scripts to compare servers.
^^^^^^^
Ve man xditviewbu 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?