Чтобы уловить то, что я понял из комментариев Q, я собираюсь ответить, что «нет, невозможно делать то, что вы хотите, с diff
и патч
", поскольку они должны включать контекст, который включает контент, который вы не можете распространять.
Учитывая, что вы не можете полагаться на присутствие ed
, если вы можете полагаться на sed
, чтобы быть там, тогда вы могли бы просмотреть измененные файлы и обновить каждый из них. с выражением sed
:
$ cp input tempfile && \
$ sed \
-e '2s/.*/It is kinda awesome./' \
-e '4s/.*/No really, this is line 4/' \
tempfile > input && \
$ rm tempfile
Я разбил команды, чтобы намекнуть на возможность написания сценария сценария, который будет генерировать вышеуказанные команды, заменив «ввод» именем файла, которое необходимо изменить, и строки "-e ..." с содержимым, которое необходимо изменить. Здесь я меняю все, что находится в строке 2 и строке 4, соответствующим текстом.
Если вас беспокоит конфликт «временного файла» с существующим именем, посмотрите, есть ли в этой спартанской системе mktemp
. Вы можете сэкономить несколько циклов mktemp, создав один временный файл для (повторного) использования для каждого входного файла.
Если в этой системе ed-less есть sed, который поддерживает флаг -i
, то вы можете упростить этот пакет до:
$ sed -i.orig \
-e '2s/.*/It is kinda awesome./' \
-e '4s/.*/No really, this is line 4/' \
input
mikeserv поднимает хороший вопрос с помощью команды sed 'c'; GNU sed, похоже, принимает заменяющий текст в той же строке, что и команда 'c', но на всякий случай, если ваш нет, вот один вариант:
$ cat > patch.sed
2c\
this is the new line two
4c\
this is an awesomer line four
^D
$ sed -f patch.sed input > output ## or sed -i.orig -f patch.sed input
В выпусках Ubuntu до 17.10 Ubuntu имеет 6 виртуальных консолей tty1 -tty6, доступ к которым осуществляется с помощью комбинаций клавиш Ctrl + Alt + F1 до Ctrl + Alt + F6 . Для доступа к графическому интерфейсу из любой виртуальной консоли нажмите комбинацию клавиш Ctrl + Alt + F7 .
Начиная с Ubuntu 17.10, которая позволяла пользователю выбирать Xorg или Wayland при входе в систему, доступ к виртуальным консолям осуществляется с помощью комбинаций клавиш Ctrl + Alt + F3 - Ctrl + Alt + F6 . Для доступа к графическому интерфейсу из любой виртуальной консоли нажмите комбинацию клавиш Ctrl + Alt + F2 .
/dev/tty
— это управляющий tty текущего процесса для любого процесса, который фактически открывает этот специальный файл. Это не обязательно виртуальная консоль. Например, запуск команды echo hello > /dev/tty
в терминале возвращает hello
, но запуск sudo echo hello > /dev/tty0
до sudo echo hello > /dev/tty7
возвращает сообщение об ошибке, подобноеbash: /dev/tty0: Permission denied
getty, сокращение от «get tty», представляет собой программу Unix, работающую на хост-компьютере, которая управляет физическими или виртуальными терминалами (TTY ). Когда он обнаруживает соединение, он запрашивает имя пользователя и запускает программу входа в систему для аутентификации пользователя.Википедия В большинстве систем Debian tty7 используется системой X Window, поэтому, если вы хотите добавить больше getty, продолжайте, но пропустите tty7, если вы используете X.