Одна из возможностей - использовать sed
:
sed 's/complete/complete\n/g' filename
Чтобы напрямую заменить содержимое файла, используйте sed -i ...
.
Чтобы сделать резервную копию исходного файла с расширением .bak
, используйте sed -i.bak ...
.
Чтобы дать более точный ответ, ваш вопрос должен быть более точным.
Если оба терминала принадлежат одному пользователю, вы можете отправить свой вывод на виртуальное устройство, которое используется как tty конкретного терминала.
Таким образом, вы можете использовать вывод из w
, который включает информацию TTY, и писать прямо на это устройство.
ls > /dev/pts/7
(Если устройство, указанное в w
, было pts / 7)
Другой вариант - использовать номер процесса, подключенного к этому устройству. Отправьте свой вывод на / proc / <номер процесса> / fd / 1
.
ls > /proc/5555/fd/1
Предположим, что номер процесса, который вы обнаружили на этом терминале, - 5555.
Обратите внимание, что эта прямая запись разрешена только в том случае, если пользователь, который пытается писать, является тем же пользователем, который владеет другим терминалом ].
Вы можете использовать команду write
.
Как прокомментировал @MelBurslan, если разрешение на запись отключено, сначала выполните:
$ mesg y
From man mesg
OPTIONS
y Разрешить доступ на запись к вашему терминалу.
Использование записи:
$ write username tty
например. Отправьте вывод ls
на другой терминал.
$ w
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
user :0 :0 08:15 ?xdm? 7:37 0.25s init --user
user pts/0 :0 08:19 1.00s 0.09s 0.01s w
user pts/12 :0 08:50 54.00s 0.03s 0.03s bash
$ ls | write username pts/12
Я нашел похожий метод.
На первом терминале:
$ tty
/dev/pts/0
$ <no need to run any command here, just see the output>
На втором терминале:
$ ls > /dev/pts/0
Теперь вы получаете вывод на первом терминале
вы можете писать на TTY терминала; например:
на клемме 1:
$ tty
ttys000
на клемме 2:
$ tty
ttys029
$ exec &> >(tee >(cat >&/dev/ttys000))
ls
Вывод будет отображаться на обоих терминалах в реальном -времени даже во время ввода.
Работает на Linux и macOS. Путь TTY для macOS — /dev/{number}
, а для Linux — /dev/pts/{number}