Как я могу перечислить все страницы руководства, содержащие определенный текст, без отображения содержимого? [дубликат]

Очевидно, у вас много файлов. Рассмотрите возможность использования GNU Parallel http://www.gnu.org/software/parallel/ 'ls -U' не сортирует файлы, и тогда это происходит быстрее.

cd $VSTROOT/VirtualScreening/Ligands
ls -U ZINC* | parallel echo {} \; pythonsh ../../prepare_ligand4.py -l {} -d ../etc/ligand_dict.py

Я не понимаю, почему вы повторяете это эхом. Разбираете ли вы это в новом сценарии? Я предполагаю, что «prepare_ligand4.py» - это сценарий для преобразования, и тогда он должен выполнить работу (параллельно):

cd $VSTROOT/VirtualScreening/Ligands
ls -U ZINC* | parallel pythonsh ../../prepare_ligand4.py -l {} -d ../etc/ligand_dict.py

3
28.03.2016, 15:11
1 ответ

Вы можете использовать параметр -w :

   -w, --where, --path, --location
          Don't actually display the manual pages, but do print the  loca‐
          tion(s) of the source nroff files that would be formatted.

Это возвращает почти то, что вы запрошено:

$ man -wK hairpin
/usr/share/man/man1/nmcli.1.gz
/usr/share/man/man8/ip-link.8.gz
/usr/share/man/man8/bridge.8.gz
/usr/share/man/man5/systemd.network.5.gz
/usr/share/man/man5/nm-settings.5.gz
/usr/share/man/man5/nm-settings-ifcfg-rh.5.gz
/usr/share/man/man7/systemd.directives.7.gz

Если этого недостаточно, вы можете разобрать его в форму:

$ man -wK hairpin | perl -pe 's#.*/([^/]+)\.(\d+)\.gz#$1($2)#'
nmcli(1)
ip-link(8)
bridge(8)
systemd.network(5)
nm-settings(5)
nm-settings-ifcfg-rh(5)
systemd.directives(7)

Наконец, вы можете превратить это в функцию. Добавьте эту строку в файл инициализации вашей оболочки (например, ~ / .bashrc ):

function sman(){ man -wK "$@" | perl -pe 's#.*/([^/]+)\.(\d+)\.gz#$1($2)#'; }

Затем вы можете запустить:

$ sman hairpin
nmcli(1)
ip-link(8)
bridge(8)
systemd.network(5)
nm-settings(5)
nm-settings-ifcfg-rh(5)
systemd.directives(7)
6
27.01.2020, 21:13

Теги

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