Запитання з тегом «pipe»

Труба Unix з'єднує дескриптори файлів двох процесів. Труба створюється за допомогою функції POSIX pipe (), оголошеної в <unistd.h>. Оболонки забезпечують створення труби між процесами, використовуючи "|".

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

1
Чому echo> файл використовує більше реального часу, ніж echo | sed> файл?
Приклад нижче, мене здивував. Це здається протилежним інтуїтивно зрозумілим ... окрім того, що у комбі є більше часу для echo | sedкомбо. Чому echoвикористовується стільки системного часу, коли він працює самостійно, або має бути питання, як sedзмінюється стан гри? Здається, що в обох випадках echoпотрібно зробити те саме, що лунає …
28 bash  shell  pipe  time  echo 

4
Чи є спосіб передати висновок однієї програми на дві інші програми?
Вибачте, якщо це дурне питання, але я намагаюся здійснити щось подібне, але в одному рядку: $ prog1 | prog2 $ prog1 | prog3 Отже, я в основному хочу виконати prog1 і передати вихід на prog2 та prog3 окремо (не на ланцюг). Спочатку я намагався використовувати трійник, але це не здавалося …
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, підтримують Process Substitution, який є способом подання результату процесу у вигляді файлу, наприклад: $ diff &lt;(sort file1) &lt;(sort file2) Однак ця конструкція не є POSIX і, отже, не портативна. Як може обробляти підміна бути досягнутий в POSIX співдружню чином (тобто той , який працює в /bin/sh) …

1
Чому "sed q" працює по-різному, коли читаєш з труби?
Це питання було перенесено з помилки сервера, оскільки на нього можна відповісти на Unix &amp; 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 має єдиний супер блок і встановлюється під його власним root …
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:" та "STDOUT:". …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.