сокращение от питания содержания нескольких файлов к stdin сценария

Можно создать наборы CPU на командной строке также. man cpuset Позже можно присвоить (рабочие) процессы им.

20
18.09.2017, 17:21
2 ответа

Можно использовать cat и канал:

cat file1 file2 file3 ... fileN | ./script

Ваш пример, с помощью канала и никакого временного файла:

join file1.txt file2.txt | ./script
20
27.01.2020, 19:44
  • 1
    D'oh. Это настолько просто, я даже не уверен, как я не понял это сам.Спасибо! –  0x4B1D 08.09.2011, 04:12
  • 2
    Полезное использование премии кошки! –  glenn jackman 08.09.2011, 04:58
  • 3
    @Bruce Ediger: Я предполагаю, что Вы просто указывали на способ использовать join без временного файла, но только прояснить читателю: cat f1 f2 не производит тот же вывод как join f1 f2 –  Peter.O 08.09.2011, 06:04
  • 4
    @fred благодарит указать на это - я использовал join в моем примере, потому что я играл с ним прежде; в действительности для моего примера я использовал cat. –  0x4B1D 08.09.2011, 15:38

Чтобы добавить к ответу @Jonah Braun, если вам когда-нибудь понадобится добавить вывод процесса в ваш сценарий, т. е. ваш файл может быть не на вашем диске, а доступен через URLс помощью curlили аналогичный инструмент.

Нечто подобное можно использовать для получения stdoutнескольких процессов и использования их в скрипте черезstdin

Это будет скрипт для обработки ввода Содержаниеmulti-input.sh:

#!/usr/bin/env bash
while read line; do
    echo $line
done

А теперь проверь:

$./multi-input.sh < <(cat <(echo process 1) <(echo process 2) <(echo process 3))

Выход:

process 1
process 2
process 3

<()превращает процесс в виртуальный file, используя fd, если хотите, поэтому для его чтения необходимо <. catсам по себе не нуждается в этом, потому что он делает то, что делает, объединяет файлы, виртуальные или реальные.

4
27.01.2020, 19:44

Теги

Похожие вопросы