Можно обратиться к Случаю № 1 как это с GNU sed:
sed -r ':a; /^\s*$/ {N;ba}; s/( *\n *){2,}/\n\n/'
Таким образом, соберите пустые строки в пространстве шаблона, и если существует больше чем три или больше строки, уменьшают его до двух строк.
Для присоединения к напечатанным через один интервал строкам, как, в случае, если № 2, можно сделать это как это:
sed -r '/^ *\S/!b; N; /\n *$/!b; N; /\S *$/!b; s/\n *\n/\n/'
Или в прокомментированной форме:
sed -r '
/^ *\S/!b # non-empty line
N #
/\n *$/!b # followed by empty line
N #
/\S *$/!b # non-empty line
s/\n *\n/\n/ # remove the empty line
'
Установите флажок документацию ядра для получения информации о файлах / proc
.
Существует один такой файл на процесс, потому что не все процессы видят одни и те же точки монтирования. Chroot - это традиционная функция UNIX, которая позволяет ограничивать процессы до подделка дерева файловой системы. Chrooted процесс не увидит точки монтирования за пределами его корня. Linux делает это дальше с помощью пространств имен : процесс может составить свой собственный вид на файловую систему, прививаясь от поддеревов вокруг.
Для получения дополнительной информации о пространствах имен монтирования см. В разделе на процедуру частных точек монтирования файловой системы и статьи Майкла Керриска на пространстве имен на LWN .