@terdon хорошо, ваше первое предложение-это тот, который не работает для меня, а второе требует Интернет (что не вариант). Я раньше была уверена, что ваше третье предложение требует интернет так же, но на более близкий осмотр, я понимаю, что ошибался. Я дам #3 выстрел, и пусть вы знаете, как она идет. Действительно, огромное спасибо за вашу помощь. В Национальный лесной заказник Gila Ист не только парк, но и одним из крупнейших национальных лесов в США, площадью около 11 000 км2. Как вы планируете закрыть такое дело с несколько Гейтса? Все это хорошо для меня. Есть только одна вещь, что мне интересно. Родительский процесс открыл файл. После этого дочерний процесс разветвляется. В этом случае, как дочерний процесс открыть указатель файла ? Что я имею в виду, является ли указатель файла отправляется в дочерний процесс через параметр argv ? @JeffreyBlattman вы никогда не сможете "случайно" использовать ФД, которые не "относятся" к вам, в том смысле, что вы имеете в виду. Если вы не тот процесс, который открыл трубу и вы не получите дескриптор файла для трубы, через любые другие средства (как описано в моем ответе), то нет никакой дескриптор файла, что означает, что труба. Думаю дескриптора файла как указатель на встроенный в ядро объекта, представляющего собой трубу. Если ядро уже никогда не дал тебе указатель на объект, вы не можете указать на него. Это не безопасность через маскировку.

Здесь вы идете:

кот входной_файл | тр -д '\р\т' | е: loop_start; /,$/б; н; с/\н//; б loop_start'

Объяснение:

  1. тр используется для удаления () Все и символов.
  2. Затем СЭД петель (: loop_start; ...; б loop_start) и
  3. объединяет всех линий (Н) и
  4. удаляет перевод строки (С/\Н//)
  5. пока не найдет запись разделитель (/,$/) и
  6. филиалы в конец скрипта (Б), где он запустит скрипт с Далее строке ввода.