Добавление новых элементов в массив:
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" )
Это общий совет, и нет причин не этого не делать, даже если вы знаете, что ваши значения уже представляют собой отдельные слова, не содержащие подстановочных символов.
РЕШЕНИЕ 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, потому что поведение отличается.
Вы не должны не использовать grep на справочных страницах. Справочные страницы закодированы (не на обычном английском языке )содержимое не будет соответствовать предложению, которое вы хотите найти.
Предполагая, что программа man
использует less
для отображения справочных страниц , существует способ поиска с помощью less
. Продолжай читать.
Чтобы подтвердить, что ваши справочные страницы представлены с помощью less
, введитеman grep
(или любую другую команду ), нажмите введите и во время просмотра справочной страницы нажмите только клавишу ч . Если оно меньше, заголовок представленной страницы справки называется:SUMMARY OF LESS COMMANDS . Раз вы это подтвердили. Вы должны знать, что less
может выполнять поиск самостоятельно (нажмите q для quit
представленной страницы справки, если необходимо )с помощью клавиши / . Если вы нажмете:
/-f
и нажмите Enter, вы увидите, что -f
выделено (, нажав n
, чтобы перейти к следующему совпадению ).
Или, если вам нужно увидеть только те строки, которые соответствуют строке, выполните:
&-f
Если вам нужно активировать такие поиски из командной строки, выполните:
$ LESS=+'/-f' man grep