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

42
Как проверить, является ли канал пустым, и запустить команду для данных, если это не так?

Я передал строку в скрипте bash и хочу проверить, есть ли в канале данные, прежде чем передавать их в программу. Поиск, который я нашел, test -t 0но он не работает здесь. Всегда возвращает ложь. Так как быть уверенным, что в трубе есть данные? Пример: echo "string" | [ -t 0 ] && echo...

40
Почему подстановка процесса приводит к файлу / dev / fd / 63, представляющему собой канал?

Я пытаюсь понять именованные каналы в контексте этого конкретного примера. Я печатаю <(ls -l)в своем терминале и получаю вывод как bash: /dev/fd/63: Permission denied. Если я наберу cat <(ls -l), я мог видеть содержимое каталога. Если я заменить catс echo, я думаю , что я получаю имя...

39
Условный конвейер

Скажем, у меня есть следующий конвейер: cmd1 < input.txt |\ cmd2 |\ cmd4 |\ cmd5 |\ cmd6 |\ (...) |\ cmdN > result.txt При определенных условиях я хотел бы добавить cmd3между cmd2и cmd4. Есть ли способ создать некий условный конвейер без сохранения результата cmd2 во временный файл? Я хотел...

38
Трубопроводные команды после харга по трубопроводу

HP-UX ***** B.11.23 U ia64 **** безлимитная лицензия find . -type d -name *log* | xargs ls -la дает мне имена каталогов (те, которые содержатся logв имени каталога), за которыми следуют все файлы в этом каталоге. Каталоги  /var/opt/SID/application_a/log/,  /var/opt/SID/application_b/log/, ...

38
Как заставить команду думать, что ее вывод идет в терминал

При наличии команды, которая меняет свое поведение, когда ее вывод поступает на терминал (например, производит цветной вывод), как этот вывод может быть перенаправлен в конвейер при сохранении измененного поведения? Для этого должна быть полезность, о которой я не знаю. Некоторые команды, например...

36
/ proc / PID / fd / X номер ссылки

В Linux /proc/PID/fd/Xссылки на файловые дескрипторы, представляющие собой каналы или сокеты, имеют номер, например: l-wx------ 1 user user 64 Mar 24 00:05 1 -> pipe:[6839] l-wx------ 1 user user 64 Mar 24 00:05 2 -> pipe:[6839] lrwx------ 1 user user 64 Mar 24 00:05 3 -> socket:[3142925]...

36
Как конвейеры ограничивают использование памяти?

Брайан Керниган объясняет в этом видео, что ранние исследования Bell Labs по отношению к небольшим языкам / программам основаны на ограничении памяти Большая машина была бы 64 кбайт - K, а не M или G - и это означало, что любая отдельная программа не могла быть очень большой, и поэтому существовала...

36
Почему «хвост-ф ... | хвост »не в состоянии произвести какой-либо вывод?

Почему следующая команда не выдает никаких результатов? $ tail -f /etc/passwd | tail Прочитав о буферизации , я попробовал следующее безрезультатно: $ tail -f /etc/passwd | stdbuf -oL tail Обратите внимание, что следующее действительно производит вывод: $ tail /etc/passwd | tail Так же это: $ tail...

36
Куда переходят мои управляющие коды ANSI, когда я передаю канал другому процессу? Могу ли я оставить их?

Иногда я хочу передать вывод с цветовой кодировкой процесса, например. grep ... но когда я передаю его другому процессу, например. Сед, цветовые коды потеряны ... Есть ли какой-то способ сохранить эти коды без изменений? Вот пример, который теряет цветной вывод: echo barney | grep barney | sed -n...

35
Измерьте пропускную способность трубы в оболочке

Существует команда оболочки, которая позволяет вам измерять скорость прохождения данных, поэтому вы можете измерить скорость вывода команд в канале. Так что вместо: $ somecommand | anothercommand Вы можете сделать что-то вроде: $ somecommand | ??? | anothercommand И пропускная статистика (байт /...

35
Разница между 2> & 1> output.log и 2> & 1 | тройник output.log

Я хотел знать разницу между следующими двумя командами 2>&1 > output.log а также 2>&1 | tee output.log Я видел, как один из моих коллег использовал второй вариант для перенаправления. Я знаю, что делает 2> & 1, мой единственный вопрос: какова цель использования tee, где...

34
Как вызвать редактор vim и вывод канала в bash

Иногда мне нужно написать текст, а затем передать этот текст в другую команду. Мой обычный рабочий процесс выглядит примерно так: vim # I edit and save my file as file.txt cat file.txt | pandoc -o file.pdf # pandoc is an example rm file.txt Я нахожу это громоздким и пытаюсь изучить bash-скрипты, и...

33
Что является хорошим примером объединения команд?

Если бы вы помогали кому-то узнать концепцию каналов в командной строке, какой пример вы бы использовали? Пример, который на самом деле появился, был следующим: cat whatever.txt | less Я чувствую, что это не лучший пример, а именно потому, что есть только один шаг. Что хорошего, но...

33
Как передать ls в grep и удалить файлы, отфильтрованные по grep?

Я хотел удалить какой-то пакет в моем домашнем файле, но имя файла было слишком длинным ( google-chrome-stable_current_i386.deb). Итак, я решил использовать команду ls|grep chrome|rmдля передачи файлов в grep, чтобы отфильтровать файл chrome, а затем удалить его. Это не сработало, поэтому я хотел...

33
Передача данных в стандартный поток процесса без последующего EOF

У меня есть исполняемый файл, который запускает интерактивную оболочку пользователя. Я хотел бы при запуске оболочки сначала ввести несколько команд, а затем разрешить пользователю проводить интерактивный сеанс. Я могу сделать это легко используя echo: echo "command 1\ncommand 2\ncommand3" |...

32
find -exec + vs find | xargs: какой выбрать?

Я понимаю, что -execможет выбрать +вариант для имитации поведения xargs. Есть ли ситуации, когда вы предпочитаете одну форму другой? Лично я предпочитаю первую форму, если только не использую трубу. Я уверен, что разработчики findдолжны были сделать соответствующие оптимизации. Я...

32
Каковы гарантии для одновременной записи в именованный канал?

Например, я создал именованный канал, как показано ниже: mknod myPipe p И я читаю из него какой-то процесс (например, какой-то сервер). В качестве примера я использовал tail: tail -f myPipe Если несколько клиентских процессов записывают в него несколько сообщений (например echo "msg" >>...

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-ю строку и последнюю строку с помощью команды...

31
Как мне «следить и следить» за файлом?

Файл последовательно загружается wget. Если я начну распаковывать его cat myfile.tar.bz2 | tar -xj, он может распаковать правильно или потерпеть неудачу с «Неожиданным EOF», в зависимости от того, что быстрее. Как «отслеживать и отслеживать» файл, т.е. выводить содержимое файла на стандартный...