Как выполнить поиск текста на справочных страницах?

Добавление новых элементов в массив:

array+=( new elements here )

В вашем случае:

my_array+=( "$extracted_value" )

Когда вы делаете

array+=$variable

вы добавляете к первому элементу массива. Это то же самое, что

array[0]+=$variable

Также обратите внимание, что в

extracted_value=$(./external_script.sh $file $sub_unit )

значения $fileи $sub_unitбудут разделены пробелами и подвергнутся подстановке имени файла. Чтобы предотвратить это, используйте "$file"и "$sub_unit"вместо (, т.е. двойные -кавычки расширения переменных ).

Подобным образом, говоря

my_array+=( $extracted_value )

разделит значение $extracted_valueна несколько слов, и каждое слово будет подвергнуто подстановке имени файла для создания нового элемента в массиве. Вот лучше бы написали (как уже упоминалось ),

my_array+=( "$extracted_value" )

Это общий совет, и нет причин не этого не делать, даже если вы знаете, что ваши значения уже представляют собой отдельные слова, не содержащие подстановочных символов.

0
27.10.2019, 19:50
2 ответа

РЕШЕНИЕ 1 :используйте специальный файл конфигурации для man

файл конфигурации.man.raw.conf

NROFF /usr/bin/groff -mandoc -Tlatin1 -P-u -P-b

пример использованияman

MyMAC:tmp e444$$ man  -C.man.raw.conf grep | grep -e --file
     -f file, --file=file
     -L, --files-without-match
     -l, --files-with-matches

РЕШЕНИЕ 2 :используйтеcolcrt -

MyMAC:tmp e444$  man grep | colcrt -  | grep -e --file
     -f file, --file=file
     -L, --files-without-match
     -l, --files-with-matches

ps 1 :без -colcrt добавить больше мусора

ps 2 :этот вопрос и ответ не имеют смысла в Linux, потому что поведение отличается.

1
28.01.2020, 02:39

Вы не должны не использовать grep на справочных страницах. Справочные страницы закодированы (не на обычном английском языке )содержимое не будет соответствовать предложению, которое вы хотите найти.

Предполагая, что программа manиспользует lessдля отображения справочных страниц , существует способ поиска с помощью less. Продолжай читать.

Чтобы подтвердить, что ваши справочные страницы представлены с помощью less, введитеman grep(или любую другую команду ), нажмите введите и во время просмотра справочной страницы нажмите только клавишу ч . Если оно меньше, заголовок представленной страницы справки называется:SUMMARY OF LESS COMMANDS . Раз вы это подтвердили. Вы должны знать, что lessможет выполнять поиск самостоятельно (нажмите q для quitпредставленной страницы справки, если необходимо )с помощью клавиши / . Если вы нажмете:

/-f

и нажмите Enter, вы увидите, что -fвыделено (, нажав n, чтобы перейти к следующему совпадению ).

Или, если вам нужно увидеть только те строки, которые соответствуют строке, выполните:

&-f

Если вам нужно активировать такие поиски из командной строки, выполните:

$ LESS=+'/-f' man grep
0
28.01.2020, 02:39

Теги

Похожие вопросы