Если бы Вы просто хотите вставить новую строку после pattern2 затем, это работало бы -
sed '/pattern2/s/$/\n/' file
[jaypal:~/Temp] cat file
some text
some text
some text pattern1
some text p
some text p
some text p
some text pattern2
some text
some text
[jaypal:~/Temp] sed '/pattern2/s/$/\n/' file
some text
some text
some text pattern1
some text p
some text p
some text p
some text pattern2
some text
some text
i\
для вставки. Это вставило бы before
адрес. При необходимости в новой строке, Вы использовали бы \a
который является append
.
[jaypal:~/Temp] sed '/pattern2/ a\
' file
some text
some text
some text pattern1
some text p
some text p
some text p
some text pattern2
some text
some text
Если Вы хотите добавить новую строку после своего/pattern2/и строк представления между ними, то можете быть Вами, может сделать что-то вроде этого -
[jaypal:~/Temp] sed -e '/pattern2/G' -ne '/pattern1/,/pattern2/p' file
some text pattern1
some text p
some text p
some text p
some text pattern2
[jaypal:~/Temp]
Аналогичное решение в awk
-
[jaypal:~/Temp] cat file
some text
some text
some text pattern1
some text p
some text p
some text p
some text pattern2
some text
some text
[jaypal:~/Temp] awk '/pattern1/,/pattern2/ END{print ""}' file
some text pattern1
some text p
some text p
some text p
some text pattern2
[jaypal:~/Temp]
scp
действительно обнаруживает, имеет ли это управление tty. При выполнении его как приоритетного процесса, это покажет индикатор выполнения, но если Вы фон, это, индикатор выполнения исчезает, таким образом, существует некоторое внутреннее продолжение проверок. Я сделал бы, как @peterph говорит, и запустите передачу в любом a tmux
или screen
сессия. Я не уверен в последствиях использования nohup
, но просто сохраните терминал управления активным.
Поскольку файл является настолько большим, если бы он не сжат, я также добавил бы сжатие к передаче с scp
-C
опция.
Если это - каталог, и Вы повторяли ту же команду довольно часто, необходимо, вероятно, использовать rsync, который сначала проверяет, не соглашаются ли файлы (с md5 контрольными суммами) прежде, чем передать их. Можно также возобновить большие передачи файлов с --partial
опция.
rsync -avz --partial --progress --rsh=ssh Files-from-Server-A [...] user@B:/tmp/
Общие рекомендации состоят в том, чтобы использовать оконечный мультиплексор (например. tmux
или screen
) и выполненный копия внутри, так как это дает той много гибкости. Можно отсоединить/повторно прикрепить по мере необходимости, чтобы проверить, как операция продолжается.
Эти программы создают "виртуальные" (бездисплейные) терминалы, которые отображены на/взятие входе от "реального" терминала (консоль Linux, X эмуляторов терминала, соединение SSH...). Поскольку виртуальный терминал не затронут прерываниями в реальных терминалах (оконечный мультиплексор просто прекращает отображать вывод, когда он обнаруживает закрываемое устройство IO и продолжает хранить вывод в, он - внутренний буфер), приложения, работающие внутри, экранируются от SIGHUP. В качестве награды они обычно предлагают по крайней мере некоторые основные ультрасовременные текстом возможности работы с окнами.
Я не уверен в tmux
(который активно разрабатывается), но GNU screen
должен быть включен в стандартный репозиторий RHEL.
lftp
(терминальная программа передачи файлов общего назначения) поддержки sftp
(нет scp
, но если Вы имеете scp
, Вы имеете ssh
и скорее всего это поддерживает sftp
также), и это может поместить передачи в фон, автоматически повторно подключить и возобновить передачу (после того, как настраиваемая задержка) на отказ и так далее.
Не можете Вы использовать rsync
? Такая большая передача, несомненно, повредится где-нибудь, и я не уверен, что предложенные механизмы могут продолжиться от того, где она прервалась.