15
ответов

Как я обрезаю ведущий и запаздывающий пробел от каждой строки некоторого вывода?

Я хотел бы удалить все продвижение и конечные пробелы и вкладки от каждой строки в выводе. Существует ли простой инструмент как обрезка, в которую я мог передать свой вывод по каналу? Файл в качестве примера: протестируйте пространство в заднем тесте...
26.08.2019
8
ответов

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

Я пытаюсь найти наиболее эффективный способ перебора определенных значений, которые находятся на постоянном расстоянии друг от друга. друг от друга в списке слов, разделенных пробелами (я не хочу использовать массив) ....
31.01.2019
7
ответов

Действительно ли возможно питаться, Открывают Office via STDIN?

У меня есть Открыть документ Office Spreadsheet, хранивший в переменной удара. Я хочу сделать что-то как следующее для питания, Открывают Office via STDIN: повторите "$openOfficeDoc" | офис, Но он не работает....
22.04.2014
6
ответов

Как совместить текстовое сообщение с системным сообщением?

Например, я хочу написать команду, показывающую системное время и дату. Тогда я хочу, чтобы вывод был таким The system time is Mon Jan 01 01:01:01 AST 2011. Я знаю команду, которая показывает ...
14.02.2018
6
ответов

Полуасинхронный канал

Предположите, что у меня есть следующий канал: | b | c | d, Как я могу ожидать завершения c (или b) в sh или ударе? Это означает, что сценарий d может запустить любое время (и не должен ожидаться для), но...
02.06.2015
6
ответов

чтение списка строк от вывода записи файла до утилиты

У меня есть файл со списком строк, которые я хочу считать из другого файла. Я хочу произвести те строки к утилите (grep), который позволяет мне считать всю строку и информацию о получении по запросу от нее. Файл с...
24.07.2014
6
ответов

Почему я не могу перенаправить вывод пути от одной команды до “CD”?

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

Изгиб конвейера обратно в исходное положение.

Можно подумать, что echo foo >a кошка а | rev >a оставил бы содержащее oof; но вместо этого он остается пустым. Почему? Как иначе можно было бы применить rev к a?
27.12.2019
5
ответов

Использование pv с md5sum

Я использовал md5sum с pv для проверки 4 ГиБ файлов, находящихся в том же каталоге: md5sum dir / * | pv -s 4g | sort Команда успешно завершается примерно через 28 секунд, но вывод pv неверен. ...
19.01.2019
5
ответов

Есть ли инструмент для динамического перенаправления вывода в новый файл по запросу

В настоящее время я перенаправляю вывод средства мониторинга в файл, однако я бы хотел перенаправить этот вывод в новый файл по моему запросу (с использованием привязки клавиш), не останавливая сказанное ...
04.05.2016
5
ответов

Может программа затем в конвейере видеть код выхода предыдущей программы?

Я хотел бы сделать конвейер сценариев Bash как этот prog1 | prog2 таким образом, что prog2 видят код выхода prog1 и действуют по-другому на основе той информации. Действительно ли это возможно?
08.03.2014
5
ответов

Как я могу разделить канал на 16-байтовые последовательности?

Я пишу сценарий удара для автоматизации дешифрования определенного файла; однако файл шифруется в 16-байтовых блоках, а не просто кодируется в целом. Вот некоторый код psuedo к кратко...
08.07.2013
5
ответов

FIFO, канал и домен Unix, снабжают то же самое сокетом в ядре Linux?

Я слышал, что FIFOs являются именованными каналами. И у них есть точно та же семантика. С другой стороны, я думаю, что сокет домена Unix весьма схож с каналом (хотя я никогда не использовал его). Так интересно...
15.05.2013
5
ответов

Передача по каналу вывода к текстовому файлу в для цикла

Я пытаюсь сделать следующее в для цикла: Найдите файлы, которые удовлетворяют Эхо условия название файлов к файлу журнала. Gzip файл. Я могу заставить сценарий находить файлы и повторять их...
15.03.2013
4
ответа

Как подсчитать файлы каталогов, содержащие две переменные, а затем поместить их в один текстовый файл с помощью одной команды

Мне нужна помощь в следующем; a )Напишите одну команду, которая создает файл, содержащий количество параметров как для TCP, так и для UDP. Он не должен включать параметры для других...
04.04.2021
4
ответа

Сумма в bash снаружи во время чтения строки

Я пытаюсь найти сумму строк в файлах .js в папке.Я использую это в bash: sum=0 && find . | grep ".js" | при чтении -r f; сделать wc -l $f | awk '{напечатать $1;}'; Выполнено; помещая ...
04.10.2019
4
ответа

Как передать потребителю fd 3 вместо fd1 / fd2

Я надеялся сделать что-то вроде этого: echo 'foo' >&3 3| cat По сути, я хочу написать «foo» в 3, а затем передать данные из 3 только в cat. Но это не работает, я получаю: bash: 3: ...
26.08.2019
4
ответа

как передать вывод по каналу сокращения к команде foreach?

У меня есть команда сокращения, которую я хочу, который захватывает первое слово в каждой строке файла. Я затем хочу поместить каждое слово от команды сокращения в foreach. Я затем хочу сделать команду grep в теле...
04.02.2019
4
ответа

Абсолютно буферный вывод команды прежде, чем передать по каналу к другой команде?

Существует ли способ только выполниться, команда за другим сделана без временного файла? У меня есть одна более длительная рабочая команда и другая команда, которая форматирует вывод и отправляет его в использование сервера HTTP...
19.03.2018
4
ответа

Создание единственного потока вывода из трех других потоков, произведенных параллельно

У меня есть три вида данных, которые находятся в различных форматах; для каждого типа данных существует сценарий Python, который преобразовывает его в единственный унифицированный формат. Этот сценарий Python является медленным и зависящим от ЦП (к...
13.09.2017
4
ответа

Как безопасно и последовательно запускать конвейер?

Можно ли запустить конвейер в Linux: cmd1 | cmd2 таким образом, что: cmd2 не запускается, пока cmd1 не будет полностью завершен, и Если cmd1 имеет ошибку, cmd2 не запускается вообще и выход ...
24.08.2017
4
ответа

Как обнаружить ошибку с помощью подстановки процесса

Этот вопрос похож на следующую ссылку, но сосредоточен на использовании командной строки (bash оболочка). На простом примере при выполнении следующей команды: $ cat <(date); эхо $? Пт, 7 июля, 21: ...
10.07.2017
4
ответа

Статус выхода из Bash, используемый с PIPE

Я пытаюсь понять, как передается статус выхода при использовании канала. Предположим, я использую, чтобы найти несуществующую программу: какая lss эхо $? 1 Поскольку я не смог найти lss, я получил ...
20.05.2017
4
ответа

grep для файлов и открытый результирующие соответствия

Я пытаюсь открыть все файлы на основе некоторых возвращаемых значений от grep в командной строке. Я знаю, что могу использовать-l опцию только возвратить имена файлов, но я хотел бы объединить это так или иначе с...
13.04.2017
4
ответа

Соединение sed с grep не работает должным образом

У меня есть 2 файла: $ cat file1 jim.smith john.doe bill.johnson alex.smith $ cat file2 "26.01.2017 8:02: 01 PM ", Действительный клиент, jim.smith, NY, 1485457321" 1/30/2017 11:09:36 AM ", New ...
05.02.2017
4
ответа

В чем разница между `curl | sh` и `sh -c« $ (curl) »`?

Один из простых способов установки Docker (например) таков: curl -sSL https://get.docker.com/ | sh Однако я также встречал некоторые, которые выглядели так (на примере Docker): sh -c "$ (curl -sSL ...
23.01.2017
4
ответа

Как вызвать редактор vim и передать вывод в bash

Иногда мне нужно написать текст, а затем передать его в другую команду. Мой обычный рабочий процесс выглядит примерно так: vim # Я редактирую и сохраняю свой файл как file.txt cat file.txt | pandoc -o file.pdf # ...
11.05.2016
4
ответа

Почему не делает grep, использующего трубопровод здесь?

У меня есть следующая команда: найдите / - называют libGL.so.1, Который возвращает много строк с "Отклоненным разрешением". Я хочу исключить такие строки, таким образом, я добавил следующее: найдите / - называют libGL.so.1 | grep-v...
27.04.2016
4
ответа

Поиск внутри поиска

Я привык использовать grep для поиска в командной строке и хотел узнать, как успешно выполнить поиск, используя результат другого поиска. Вот моя попытка, где я ищу 'tool' ...
12.04.2016
4
ответа

Почему нет t apt-cache policy outputiped?

Не могу понять, почему $ apt-cache policy foo N: Не удалось найти пакет foo, но политика $ apt-cache foo 2> & 1 | grep. пустой. Где в последнем вызове я делаю неверное предположение? ...
07.05.2015

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

Каналы и потоки данных

Каждая команда или программа, выполненная оболочкой, имеют 3 потока данных, связанные с ним:

  1. стандартный вход (stdin, с дескриптором файла 0) – где команды получают свой вход от (по умолчанию, ввод с клавиатуры, обеспеченный терминалом).
  2. стандартный вывод (stdout, дескриптор файла 1) – куда команды отправляют свой вывод (по умолчанию, дисплей терминала).
  3. стандартная погрешность (stderr, дескриптор файла 2) – куда команды отправляют свои сообщения об ошибках и предупреждающие сообщения (по умолчанию, дисплей терминала).

Существуют способы соединить потоки между программами, и файлы назвали передачу по каналу и перенаправления.

Передача по каналу является механизмом для отправки данных от одной программы до другого использования "|" оператор в большинстве оболочек. Оператор подает вывод из программы слева, как введено к программе справа.

Пример:

$ cat two_columns column1:cloth column2:strawberries column3:fish column4:chocolate column5:punch cards $ cat two_columns | awk -F: '{print $1}' column1 column2 column3 column4 column5 $ cat two_columns | awk -F: '{print "HAS: " $2}' HAS: cloth HAS: strawberries HAS: fish HAS: chocolate HAS: punch cards 

Дальнейшее чтение

Связанные теги

Полезные ссылки