LINUX.ORG.RU

Про конвейер в shell


0

0

Господа, у меня следующий вопрос. Сначала я ищу файлы в /usr/lib с расширением *.о:

find '/usr/lib' -type f -iname '*.o' | more

Затем я хочу послать все это на ввод команды nm, которая читает объектники:

find '/usr/lib' -type f -iname '*.o' | nm

- ничего не получается - результат такой как будто я ввел просто одну команду безаргументов.

Может что-то нетак. Буду очень благодарен подсказкам. Спасибо!

anonymous

find '/usr/lib' -type f -iname '*.o' -exec nm {} ';'

в твоем варианте ты передавал на вход nm список имен файлов, а надо было содержимое файлов.

anonymous
()

find '/usr/lib' -type f -iname '*.o' | xargs nm | less

ananas ★★★★★
()

Проходили, как же, проходили:)

Некоторые команды могут просто читать данные по конвееру, но многим необходимо заполнить поле аргумента символом - .

Пример: попробую чего-нибудь сочинить навскидку:

gunzip archiv.tar.gz. | tar xf -

кажется так. Точно не помню (man на что:)).

Суть уловил? Желаю удачи.

Good Luck!

Ikonta_521
()

find /usr/lib -name "*.o" -print -exec nm {} \; | less

символы всех *.o, разделенные их именами

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.