Припустимо, я хочу знати -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.