Здесь является еще одним sed
решение, которое связывает все строки в sed
"держите пространство" так, чтобы мы получили одну длинную строку, которая наконец копируется в "пространство шаблона" для сопоставления с образцом.
Поскольку новые строки будут сохранены в заключительной длинной строке в sed
"шаблон располагает с интервалами", пустые строки с точки зрения двойных разрывов строки [^\n]\n\n[^\n]
может быть подобран и изменен к [^\n]\n[^\n]
.
Для получения дополнительной информации посмотрите, например, sed и Многострочный Поиск и Замена.
text='
line 1
line 2
line 3
line 4
line 5
line 6
line 7
line 8
'
# FreeBSD sed
# first sed deletes first / last line if empty and squeezes multiple spaces
printf '%s' "$text" |
sed -e '1{/^$/d;}' -e '${/^$/d;}' -e '/[[:space:]]\{2,\}/s// /g' |
sed -n -e '1h;1!H;${;g;/\([^[:cntrl:]]\)\n\n\([^[:cntrl:]]\)/s//\1\
\2/g;p;}' |
nl -b a
# GNU sed
# alternative using ...;x;... instead of ...;g;...
# cf. man sed | less -p '\]x'
printf '%s' "$text" |
gsed -e '1{/^$/d;}' -e '${/^$/d;}' -e '/[[:space:]]\{2,\}/s// /g' |
gsed -E -n '1h;1!H;${;x;/([^\n])\n\n([^\n])/s//\1\
\2/g;p;}' |
nl -b a
# remove all the single linebreaks but leave the double linebreaks intact
printf '%s' "$text" |
sed -n -e '1h;1!H;${;g;/\([^[:cntrl:]]\)\n\([^[:cntrl:]]\)/s//\1 \2/g;p;}' |
nl -b a
Серьезно, если Ваш поставщик не предлагает свободный (или по крайней мере дешевый) ручная помощь для крайних случаев, пора переключиться. Иначе я думаю, что Вы соглашаетесь в значительной степени со своей установкой.
Когда Ваша система так повреждается, что fsck не может зафиксировать ее, нет очень еще, чтобы сделать, кроме полного переустанавливают. Я на самом деле не видел, что это происходит, если не был фатальный отказ оборудования.
Одна вещь отметить. Для машины как это выберите стабильное распределение (Debian, RHEL, SLES), и определенно обновите только после соответственно длительного периода (новая версия, стабилизированная в течение по крайней мере 6 месяцев).
Необходимо искать поставщика услуг хостинга, который будет поставщик serial-over-ssh доступ и настраивать установку Linux для использования (соответствующего) последовательного порта в качестве консоль (как Вы делаете это зависит от того, использует ли система выскочку или инициализацию типа sysV). Обратите внимание, что существует BIOS, доступный, который будет говорить с последовательным портом, а не созданным в экранном устройстве. Но обычно они только прибывают в дорогие аппаратные средства.
Также необходимо сказать личинке использовать последовательный порт, если Вы хотите управлять им через DTE.
Что-то, что Вы могли изучить, делает пользовательский initrd, который будет включать dropbear (работающий на другом порте, конечно), достаточно логики для получения сетевого движения и возможно способа загрузить некоторые средства восстановления при необходимости. На основе этого Вы могли затем заставить ядро восстановления сконфигурироваться, который загрузится с сетевыми возможностями и позволит Вам ssh в, позволяя Вам возвратиться на систему и делать попытку восстановления.
ssh
- доступ и screen
) - это могло затем загрузить реальное ядро через методы как en.wikipedia.org/wiki/Kexec. Или можно изучить серверы, которые идут с coreboot.org вместо некоторого дрянного BIOS от 80ies. Но уверенный, все это - ничто, что можно надежно установить и поддержать через несколько часов - в этом моменте времени со стабильным распределением.
– maxschlepzig
23.08.2011, 11:15