Як одразу отримати абзац для певного варіанту команди?


8

Наприклад, замість цілого посібника apt-getЯ хочу перейти до -fопції з підказки терміналу відразу, не використовуючи пошук через manpage.



1
@M. Моє питання Becerra ширше.
RS

@Becerra Це не тільки питання більш широке, але це також інше питання, оскільки РС хоче повернути весь абзац параметра в результатах manзамість повернення змішаного списку окремих рядків.
карел

Відповіді:


6

За замовчуванням пейджер використовується manце less. Ви можете передати шаблон пошуку ERE (Extended Regular Expression), який lessрозуміє його безпосередньо через LESSзмінну середовища, у вашому випадку слід зробити наступне:

LESS='+/-f' man apt-get

Це точно так само, як проходження /-fпісля виконання man apt-get.

Тепер це дозволить виділити всі -fs на manсторінці, щоб перейти до потрібної, тобто опції -f, ви можете використовувати ERE, щоб відповідати лише рядкам, які починаються з пробілів / вкладок, а потім -f:

LESS='+/^[[:blank:]]+-f' man apt-get

Хоча це робиться тут, але все ще може бути не точно для всіх сторінок, оскільки це буде відповідати будь-якому, що починається -fпісля початкових пробілів / вкладок. Трохи підправте візерунок, щоб відповідати вам у тих випадках.

Ви можете створити крихітну функцію для передачі шаблону пошуку та manсторінки, шукати як аргументи, якщо ви робите це часто.


9

Введіть пряму косу рису, яку ви шукаєте, а потім натисніть клавішу Enter. Ви перейдете до першого події. Натисніть, Nщоб перейти до наступного явища та Bповернутися назад. Отже, у цьому випадку:

/-f <enter>

4
Спробуйте додати пару пробілів перед тире. Велику частину часу, варіанти з відступом і що повинні перейти прямо до опції: / -f. Це повинно обійти будь-які вбудовані використання -f.
транзистор1

1

Використовуйте, sedщоб показати весь абзац опції, починається з дефісу. Щоб одразу показати весь абзац -fпараметра, запустивши одну команду, використовуйте:

man apt-get | sed -n '/-f,/,/^$/p'
   -f-,--no-f, -f=no or several other variations.

   -f, --fix-broken
       Fix; attempt to correct a system with broken dependencies in place.
       This option, when used with install/remove, can omit any packages
       to permit APT to deduce a likely solution. If packages are
       specified, these have to completely correct the problem. The option
       is sometimes necessary when running APT for the first time; APT
       itself does not allow broken package dependencies to exist on a
       system. It is possible that a system's dependency structure can be
       so corrupt as to require manual intervention (which usually means
       using dpkg --remove to eliminate some of the offending packages).
       Use of this option together with -m may produce an error in some
       situations. Configuration Item: APT::Get::Fix-Broken.  

Це повертає весь абзац для -fпараметра в людині, apt-getале вищевказану команду можна вдосконалити, усунувши кому після того, -fщоб зробити її більш корисною, як описано нижче:

man apt-get | sed -n '/-f/,/^$/p'

Це повертає кілька абзаців, більшість з яких ви не хочете читати. Прочитавши перші рядки з декількох абзаців, ви зможете побачити, що ви хочете показати лише абзац, що містить -f, --fix-brokenопцію. Зробіть це так:

man apt-get | sed -n '/--fix-broken/,/^$/p'
   -f, --fix-broken
       Fix; attempt to correct a system with broken dependencies in place.
       This option, when used with install/remove, can omit any packages
       to permit APT to deduce a likely solution. If packages are
       specified, these have to completely correct the problem. The option
       is sometimes necessary when running APT for the first time; APT
       itself does not allow broken package dependencies to exist on a
       system. It is possible that a system's dependency structure can be
       so corrupt as to require manual intervention (which usually means
       using dpkg --remove to eliminate some of the offending packages).
       Use of this option together with -m may produce an error in some
       situations. Configuration Item: APT::Get::Fix-Broken. 

Це повертає лише вихід, який ви хочете прочитати. Цей метод працює з будь-якими іншими параметрами, які починаються з дефісу, і він також працює в основному для пошуку варіантів, які починаються дефісом в інших командах, крім просто apt-get.

Показ додаткової інформації з sed

Якщо опис одного абзацу не дає достатньої інформації, наступна команда покаже перший абзац таким же, як і попередня команда та наступний абзац після нього.

LESS='+/^[[:space:]]*-f' man apt-get  

Результати цієї команди показують, що наступні абзаци не дуже цікаві, але для деяких варіантів наступні параграфи теж цікаві. Ось чому це теж корисна команда, яку слід знати.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.