массив = (* .txt); заголовок -1 $ {массив [0]}> all.txt; tail -n +2 -q $ {array [@]: 0} >> all.txt
Предполагается, что вы используете папку с файлами .txt с тем же заголовком, которые необходимо объединить / объединить этот код объединит все текстовые файлы в all.txt с одним заголовком. первая строка (строки, разделенные точкой с запятой) собирает все текстовые файлы для объединения, вторые строки выводят заголовок из первого текстового файла в all.txt , а последняя строка объединяет все текстовые файлы, собранные без заголовок (начиная со строки 2 и далее) и добавляет его в all.txt .
Невозможно сделать это, используя только поля числового идентификатора. В Linux это можно решить с помощью контрольных групп (cgroups ), потому что они иерархичны, и процесс не может покинуть свою контрольную группу.
Вот почему у традиционных систем инициализации не было надежного способа определить, какие процессы были запущены конкретной службой, и, следовательно, не было надежного способа их уничтожения, в отличие от systemd, которая полагается на cgroups для отслеживания дерева процессов.