Припустимо, я хочу знати -i
перемикач у grep
команді без прокрутки. Мені потрібна специфікація саме для цієї команди або принаймні побачити екран, який показує це першим. Так як? Як можна сказати, що взагалі не просто для grep -i
.
Припустимо, я хочу знати -i
перемикач у grep
команді без прокрутки. Мені потрібна специфікація саме для цієї команди або принаймні побачити екран, який показує це першим. Так як? Як можна сказати, що взагалі не просто для grep -i
.
Відповіді:
Спробуйте цю просту sed
команду,
$ man grep | sed -n '/-i, --ignore-case/,+2p'
-i, --ignore-case
Ignore case distinctions in both the PATTERN and the input
files. (-i is specified by POSIX.)
Пояснення:
sed -n '/-i, --ignore-case/,+2p'
|<-Search pattern->|
Він надрукує рядок, що містить шаблон пошуку, а також 2 рядки, що знаходяться трохи нижче, до рядка пошуку.
АБО
Ви можете просто вказати лише прапори в пошуковому паттені, як нижче.
avinash@avinash-Lenovo-IdeaPad-Z500:~$ man grep | sed -n '/ *i, -/,+3p'
-i, --ignore-case
Ignore case distinctions in both the PATTERN and the input
files. (-i is specified by POSIX.)
avinash@avinash-Lenovo-IdeaPad-Z500:~$ man grep | sed -n '/ *V, -/,+3p'
-V, --version
Print the version number of grep to the standard output stream.
This version number should be included in all bug reports (see
below).
avinash@avinash-Lenovo-IdeaPad-Z500:~$ man grep | sed -n '/ *F, -/,+3p'
-F, --fixed-strings
Interpret PATTERN as a list of fixed strings, separated by
newlines, any of which is to be matched. (-F is specified by
POSIX.)
avinash@avinash-Lenovo-IdeaPad-Z500:~$ man grep | sed -n '/ *G, -/,+3p'
-G, --basic-regexp
Interpret PATTERN as a basic regular expression (BRE, see
below). This is the default.
Ви можете додати цей скрипт до свого .bashrc
( $HOME/.bashrc
) для швидкого доступу:
mangrep(){
USAGE="mangrep <application> <switch>"
if [[ "$#" -ne "2" ]]
then
echo "Usage: $USAGE"
else
man "$1" | sed -n "/ *"$2", -/,+3p"
fi
}
Введіть команду нижче на терміналі:
man grep
Потім введіть символ слэш /, і напишіть пошук, як -i
, за ним і далі Enter. Це позиціонує курсор під час першого появи рядка пошуку. Натискання nпереміщує курсор до наступного явища. Натискання Shift+ nпереміщує курсор до попереднього явища.
-i
на сторінці. man grep
Але ОП бажає лише опису, пов’язаного з -i
прапором на сторінці людини.
-i
. Саме цього хоче ОП.
Хоча найпростішим підходом є пошук за /пропозицією @girardengo, ви також можете використовувати grep
замість sed
якого я вважаю простішим:
$ man grep | grep -A 1 '^ *-i'
-i, --ignore-case
Ignore case distinctions in both the PATTERN and the input
files. (-i is specified by POSIX.)
В -A N
означає «Друк N рядків після узгодження одного. Просто трюк , щоб отримати наступні кілька рядків, схожих на Авінаша в sed
підході.
Ви можете використовувати функцію пошуку всередині man
, просто натисніть "s"
, введіть шукану клавішу (-i у вашому випадку) та натисніть клавішу введення.
Або ви можете дозволити цьому веб-сайту здійснити пошук за вами:
http://explainshell.com/explain?cmd=grep+-i
Вам доведеться трохи перейти від використання терміналу до браузера, але є і способи цього .
Найбільш ефективний метод, про який я знаю, - це пошук за чоловічою сторінкою -i
(начебто, на цьому веб-сайті не виходить мій код. Що я маю на увазі <space><space><space>-i
). Це 3 пробіли (можливо, вам знадобиться більше / менше пробілів), а потім прапор, який ви шукаєте. На моєму досвіді це майже завжди працює, і ви можете змінити його на якийсь варіант у випадках, коли це не працює.
Це працює, тому що фактична документація на прапори, як правило, з відступом. Це дозволяє уникати інших згадок прапора в інших розділах, оскільки перед ними зазвичай лише один пробіл.
Через всі відповіді це може бути добре, але я думаю, що ви зосереджуєтесь лише на фрагменті документації, а не на всіх. Наприклад, щоб знайти -i
комутатор grep-документації:
info grep Invoking Command-line\ Options Matching\ Control
Я знайду всю інформацію про "grep", як "викликати" конкретні "параметри командного рядка" для "відповідності контролю". До жаль , він не йде більш глибше , ніж це, але у нього є -i
, -y
, --ignore-case
в Firsts 25 рядків, що - то розумне , що вам не доведеться прокручувати все свій шлях вниз.
Це рішення є більш гнучким, а також дозволяє шукати всі інформаційні сторінки:
info --apropos=--ignore-case
"(coreutils)join invocation" -- --ignore-case <1>
"(coreutils)uniq invocation" -- --ignore-case <2>
"(coreutils)sort invocation" -- --ignore-case
"(gettext)msggrep Invocation" -- --ignore-case, ‘msggrep’ option
"(grep)Matching Control" -- --ignore-case
(довелося використовувати --ignore-case
замість того, що -i
це було занадто часто, але ви можете просто обробити вихідну інформацію в будь-якому випадку)
У цьому випадку у вас є як назва інформаційної сторінки, так і точний розділ. Ах, майже забув, ви також можете просто tabпройти через більшу частину інформаційних сторінок.
Мій улюблений підхід, щоб знайти заданий варіант на man
сторінці, - це використовувати регулярний вираз \s{2,}-option
. Що стосується питання, ви можете зробити, man grep
а потім набрати регулярний вираз:
/\s{3,}-i
або
/ {3,}-i
^------------- space here
Це відповідатиме -i
лише тоді, коли слідує три чи більше пробілів.
Оскільки less
використовується за замовчуванням як пейджер man
, ви можете використовувати LESS
змінну середовища для передачі шаблону для пошуку, коли less
відкриється сторінка. Це ідентично тому, як робити, наприклад, man ls
шукати варіант --all
або -a
вводити, /а потім вводити шаблон, наприклад, --all
або -a
.
Все це можна зробити:
LESS='+/--all' man ls
Або
LESS='+/-a' man ls
Введіть те, що ви хочете шукати /
.
Імовірно, це найкраще підходить для довгих варіантів (наприклад --all
) порівняно з короткими (наприклад -a
).
Якщо ви хочете , щоб grep
в man <program>
результатах для шаблону , починаючи з дефісом, використання --
до шаблону ви вказуєте. Приклад з використанням man find
:
man find | grep -- -type
Якщо вам потрібна додаткова інформація, наприклад, весь розділ, що описує параметр, спробуйте скористатися sed
:
$ man find | sed -n '/-mindepth/,/^$/p'
-mindepth levels
Do not apply any tests or actions at levels less than levels (a
non-negative integer). -mindepth 1 means process all files
except the command line arguments.