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

31
Как удалить первые n строк и последнюю строку файла с помощью команд оболочки?

У меня есть файл с именем, Element_queryсодержащим результат запроса: SQL> select count (*) from element; [Output of the query which I want to keep in my file] SQL> spool off; Я хочу удалить 1-ю строку и последнюю строку с помощью команды...

30
Shell Script mktemp, каков наилучший способ создания временного именованного канала?

Я знаю, что лучше всего создавать временные файлы mktemp, но как насчет именованных каналов? Я предпочитаю, чтобы все было как можно более POSIX-совместимым, но только Linux приемлемо. Как я пишу, избегать Bashisms - мой единственный жесткий критерий...

30
Разноцветный Grep

Я пытаюсь заставить каждую команду grep выделять ее результаты другим цветом. Я могу сделать это вручную с помощью такой строки: ls -l GREP_COLORS='mt=01;32' grep c | GREP_COLORS='mt=01;31' grep o | GREP_COLORS='mt=01;34' grep n | GREP_COLORS='mt=01;36' grep f Каждый cсимвол будет выделен зеленым...

30
Являются ли сокеты FIFO, pipe и Unix одинаковыми в ядре Linux?

Я слышал, что FIFO - это именованные каналы. И у них точно такая же семантика. С другой стороны, я думаю, что доменный сокет Unix очень похож на pipe (хотя я никогда не использовал его). Поэтому мне интересно, все ли они ссылаются на одну и ту же реализацию в ядре Linux. Есть...

30
Что заставляет процесс Unix умирать с Broken pipe?

Вот несколько вариантов, о которых я подумал, но не уверен, что это правильный вариант. Произошла ошибка чтения ввода-вывода из канала. Запись процесса на другой конец канала завершилась сбоем. Все процессы, которые могли писать в канал, закрыли его. Буфер записи канала заполнен. Пир закрыл другое...

29
Труба на несколько файлов в оболочке

У меня есть приложение, которое будет производить большое количество данных, которые я не хочу хранить на диске. Приложение в основном выводит данные, которые я не хочу использовать, но набор полезной информации, которая должна быть разбита на отдельные файлы. Например, с учетом следующего вывода:...

28
Есть ли способ передать вывод одной программы в две другие программы?

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

28
Почему echo> файл использует больше реального времени, чем echo | sed> file?

Пример ниже удивил меня. Кажется, это противоречит интуиции ... кроме того факта, что у комбо больше времени для пользователяecho | sed . Почему echoиспользуется так много системного времени, когда он работает один, или должен быть вопрос: как sedменяется состояние игры? Похоже, что в обоих случаях...

27
Почему я не могу перенаправить вывод имени пути из одной команды в «cd»?

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

27
Как я могу время трубы?

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

26
Является ли трубопровод, смещение или расширение параметров более эффективным?

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

25
Как захватить упорядоченный STDOUT / STDERR и добавить метки времени / префиксы?

Я изучил почти все доступные подобные вопросы , но безрезультатно. Позвольте мне подробно описать проблему: Я запускаю несколько автоматических сценариев, и они могут генерировать стандартный вывод и стандартные строки ошибок, я хочу записать их в точном порядке, отображаемом эмулятором терминала,...

25
Почему sed q работает иначе при чтении из канала?

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

25
Как работают каналы в Linux

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

25
Почему моя переменная локальна в одном цикле 'while read', а не в другом, на первый взгляд, похожем цикле?

Почему я получаю разные значения $xиз приведенных ниже фрагментов? #!/bin/bash x=1 echo fred > junk ; while read var ; do x=55 ; done < 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 # x=1 .. but why? x=1 echo fred | while read var ;...

25
Как перенаправить вывод завершения команды?

В командной строке я могу перенаправить или направить вывод команды в файл или другую команду, используя оператор >или |после команды. Я столкнулся с менее стандартной ситуацией, когда я хотел бы перенаправить вывод в файл, но у меня, кажется, нет возможности перенаправить его: Когда на новом...

25
Каков переносимый (POSIX) способ добиться замены процесса?

Некоторые оболочки, например bash, поддерживают замену процесса, которая представляет собой способ представления результатов процесса в виде файла, например: $ diff <(sort file1) <(sort file2) Однако эта конструкция не POSIX и, следовательно, не переносимая. Как можно заменить процесс на...

25
Следуйте по трубе, используя меньше?

Может ли меньше следовать (нажатием F) ввод по каналу (аналогично файлу)? Для файла, в который выполняется запись, команда less <file> будет следовать за файлом при нажатии F. Но если у меня есть команда, которая выводит каналы напрямую в меньшее, как это command | less нажатие F ничего не...