Я установил vim, и он работал
apt-get install vim
edit: Это решение.
Используйте подоболочку. Выполните команды в подоболочке и направьте вывод в свою программу.
(cat a; echo; cat b; tail -n+2 c) | ./myProgram
Попробуйте следующее:
{ cat A ; echo; cat B ; awk 'NR>1' C ; } | programm
поместите команды в фигурные скобки - это группировка .
Не то чтобы ;
обязательно, если нет новой строки для завершения группировки .
И нет необходимости в другой подоболочке здесь;)
tail -n +2 C | cat A <(echo) B - | myProgram
Здесь вы указываете tail
читать, начиная со строки 2, и передавать ее cat
, которая объединяется в порядке A + B + STDIN (-), а затем передает ее в myProgram.
Правка: Добавлена новая строка между A и B.
Использование подстановки процесса
./myProgram < <(cat A; echo ''; cat B; tail -n +2 C)
<(commands)
создает файл FIFO, который затем считывается в программу
Вы можете проверить, выполнив
$ echo <(cat A; echo ''; cat B; tail -n +2 C)
/ dev / fd / 63
Замена процесса поддерживается в системах, поддерживающих именованные каналы {{ 1}} (FIFO) или метод / dev / fd именования открытых файлов. Он принимает форму из <(список) или> (список). Список процессов запускается со своим входом или выходом - помещается в FIFO или какой-либо файл в / dev / fd.Имя этого файла передается в качестве аргумента текущей команде в результате раскрытия . Если используется форма> (список), запись в файл будет про - вид ввода для списка. Если используется форма <(список), файл, переданный как аргумент , должен быть прочитан для получения вывода списка. Если доступно, подстановка процесса выполняется одновременно с раскрытие параметров и переменных, подстановка команд и арифметическое раскрытие .
Еще несколько возможностей:
{ grep -h "^" A B ; { read; cat; } < C ; } | ./myProgram
grep "^"
соответствует началу каждой строки, даже если последняя строка не заканчивается новой строкой. -h
не позволяет grep ставить перед каждым совпадением префикс имени файла. read
читает (и отбрасывает) первую строку C, затем cat
дает остальную часть C. Или просто с помощью sed
:
{ sed "" A B ; sed "1d" < C ; } | ./myProgram