Вопросы с тегом «pipe»

Канал Unix соединяет файловые дескрипторы двух процессов. Канал создается с помощью функции POSIX pipe (), объявленной в <unistd.h>. Оболочки обеспечивают создание канала между процессами, используя «|».

6
Труба на несколько файлов в оболочке
У меня есть приложение, которое будет производить большое количество данных, которые я не хочу хранить на диске. Приложение в основном выводит данные, которые я не хочу использовать, но набор полезной информации, которая должна быть разбита на отдельные файлы. Например, с учетом следующего вывода: JUNK JUNK JUNK JUNK A 1 JUNK …
29 bash  shell  grep  pipe 

1
Почему echo> файл использует больше реального времени, чем echo | sed> file?
Пример ниже удивил меня. Кажется, это противоречит интуиции ... кроме того факта, что у комбо больше времени для пользователяecho | sed . Почему echoиспользуется так много системного времени, когда он работает один, или должен быть вопрос: как sedменяется состояние игры? Похоже, что в обоих случаях echoнужно повторить одно и то …
28 bash  shell  pipe  time  echo 

4
Есть ли способ передать вывод одной программы в две другие программы?
Извините, если это глупый вопрос, но я пытаюсь сделать что-то вроде этого, но в одной строке: $ prog1 | prog2 $ prog1 | prog3 Итак, я в основном хочу выполнить prog1 и направить вывод в prog2 и prog3 отдельно (не в цепочку). Сначала я пытался использовать tee, но это казалось …
28 pipe 

6
Почему я не могу перенаправить вывод имени пути из одной команды в «cd»?
Я пытаюсь cdпринять имя каталога, перенаправленное на него от другой команды. Ни один из этих методов не работает: $ echo $HOME | cd $ echo $HOME | xargs cd Это работает: $ cd $(echo $HOME) Почему первый набор команд не работает, и есть другие, которые также терпят неудачу таким образом?

5
Как обрабатывать / передавать данные TCPDUMP в режиме реального времени
Если я хочу tcpdump DNS-запросов клиентов (на маршрутизаторе OpenWrt 10.04), то я root@ROUTER:/etc# tcpdump -n -i br-lan dst port 53 2&gt;&amp;1 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on br-lan, link-type EN10MB (Ethernet), capture size 96 bytes 22:29:38.989412 IP 192.168.1.200.55919 &gt; 192.168.1.1.53: 5697+ A? …
27 pipe  tcpdump 

3
Как я могу время трубы?
Я хочу timeкоманду, которая состоит из двух отдельных команд с одним выводом трубопровода к другому. Например, рассмотрим два сценария ниже: $ cat foo.sh #!/bin/sh sleep 4 $ cat bar.sh #!/bin/sh sleep 2 Теперь, как я могу timeсообщить о потраченном времени foo.sh | bar.sh(и да, я знаю, что канал здесь не …
27 bash  shell  pipe  time 

8
Является ли трубопровод, смещение или расширение параметров более эффективным?
Я пытаюсь найти наиболее эффективный способ перебора определенных значений, которые представляют собой одинаковое количество значений друг от друга в списке слов, разделенных пробелами (я не хочу использовать массив). Например, list="1 ant bat 5 cat dingo 6 emu fish 9 gecko hare 15 i j" Поэтому я хочу иметь возможность просто …

2
Каков переносимый (POSIX) способ добиться замены процесса?
Некоторые оболочки, например bash, поддерживают замену процесса, которая представляет собой способ представления результатов процесса в виде файла, например: $ diff &lt;(sort file1) &lt;(sort file2) Однако эта конструкция не POSIX и, следовательно, не переносимая. Как можно заменить процесс на POSIX- дружественный метод (т. Е. Тот, который работает в /bin/sh) ? примечание: …

1
Почему sed q работает иначе при чтении из канала?
Этот вопрос был перенесен из-за сбоя сервера, поскольку на него можно ответить в Unix и Linux Stack Exchange. Мигрировал 3 года назад . Я создал тестовый файл с именем «test», который содержит следующее: xxx yyy zzz Я запустил команду: (sed '/y/ q'; echo aaa; cat) &lt; test и я получил: …
25 sed  pipe 

1
Как работают каналы в Linux
Я читал о том, как каналы реализованы в ядре Linux, и хотел проверить мое понимание. Если я ошибаюсь, будет выбран ответ с правильным объяснением. В Linux есть VFS с именем pipefs, которая монтируется в ядре (а не в пространстве пользователя) pipefs имеет один суперблок и монтируется в своем корневом ( …
25 kernel  pipe 

1
Как перенаправить вывод завершения команды?
В командной строке я могу перенаправить или направить вывод команды в файл или другую команду, используя оператор &gt;или |после команды. Я столкнулся с менее стандартной ситуацией, когда я хотел бы перенаправить вывод в файл, но у меня, кажется, нет возможности перенаправить его: Когда на новом терминале, [chiliNUT ~]$ если я …

3
Следуйте по трубе, используя меньше?
Может ли меньше следовать (нажатием F) ввод по каналу (аналогично файлу)? Для файла, в который выполняется запись, команда less &lt;file&gt; будет следовать за файлом при нажатии F. Но если у меня есть команда, которая выводит каналы напрямую в меньшее, как это command | less нажатие F ничего не сделает. Таким …
25 pipe  less  tail 


4
Почему моя переменная локальна в одном цикле 'while read', а не в другом, на первый взгляд, похожем цикле?
Почему я получаю разные значения $xиз приведенных ниже фрагментов? #!/bin/bash x=1 echo fred &gt; junk ; while read var ; do x=55 ; done &lt; junk echo x=$x # x=55 .. I'd expect this result x=1 cat junk | while read var ; do x=55 ; done echo x=$x # …

2
Как захватить упорядоченный STDOUT / STDERR и добавить метки времени / префиксы?
Я изучил почти все доступные подобные вопросы , но безрезультатно. Позвольте мне подробно описать проблему: Я запускаю несколько автоматических сценариев, и они могут генерировать стандартный вывод и стандартные строки ошибок, я хочу записать их в точном порядке, отображаемом эмулятором терминала, а затем добавить к ним префикс, такой как «STDERR:» и …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.