Откровенно говоря, я бы сделал это в интерактивном режиме в Vim за меньшее время, чем потребовалось бы для ввода любого из приведенных выше сценариев.
vim list2
Затем прочтите список 1 вверху. (Я предполагаю, что будет легко визуально сказать, где он заканчивается и где начинается список2, поэтому нет необходимости что-либо отмечать заранее, но вы можете :1k a
сначала, если хотите, чтобы исходная строка 1 списка2 была отмечен.)
:0r list1
После этой команды ваш курсор окажется в начале файла, на первом слове test1
.
Нажмите *
, чтобы перейти к следующему экземпляру слова под курсором. (Это будет строка, которую вы хотите прокомментировать.)
Нажмите I
, чтобы войти в режим вставки (для первого символа, отличного от -, пробела в строке, поскольку вы использовали заглавную I
, а не строчную ), и напечатали //
, а затем нажмите Побег.
Нажмите n
, чтобы перейти к следующему экземпляру искомого слова. (Поскольку вы находитесь в начале строки сразу после ваших //
символов, ваш курсор перейдет к экземпляру, который вы только что нашли. Поэтому нажмите ее еще раз, чтобы перейти к следующему экземпляру.)
Предполагая, что нужно прокомментировать только один экземпляр, вы снова окажетесь в начале файла — в первой строке.Нажмите j
, чтобы перейти вниз (, или просто нажмите Enter, чтобы перейти к первому символу, отличному от -, пробела в следующей строке — тот же результат в данном случае ).
Нажмите *
, чтобы перейти к следующему экземпляру test3
, так как он находится под вашим курсором.
Нажмите .
, чтобы повторить действие «закомментировать строку». Команда точки просто великолепна.:)
Нажмите n
еще раз. (Дважды. )В вашем примере текста вы закончили — вы вернулись ко второй строке, test3
. Если нужно было прокомментировать больше строк, снова просто введите j*.nn
. И если есть другой, снова введите j*.nn
.
Когда закончите (вы находитесь на test3
или где бы ни была последняя строка из list1
, чуть выше исходной первой строки из list2
), нажмите dgg
, чтобы удалить все строки из текущей строки в первую строку файла, чтобы записей list1
там больше не было.
Всего вы вводите
vim list2<Enter>
, чтобы открыть файл, затем:
:0r list1<Enter>
*I//<Esc>nn
j*.nn
j*.nn
j*.nn
(Repeat however many times)
dgg
Затем, чтобы сохранить и выйти, введите :x
и нажмите Enter.
РЕДАКТИРОВАТЬ:
Я узнал, что ваш "list1" огромен. Не имеет значения; просто используйте макрос.
Выполнив описанное выше несколько раз, чтобы убедиться, что это работает, введите:
qkj*.nnq
Это запишет j*.nn
как макрос в регистр k
.
Запустите макрос, набрав @k
.
Запустите его еще раз, набрав @@
.
Затем запустите его 4000 раз, набрав 4000@@
. Но лично я бы делал это небольшими порциями. И, возможно, не использовать команду точки в макросе, а явно ввести I//<Esc>
.
Суть в том, что я бы по-прежнему делал это интерактивно, и это по-прежнему занимало всего минуту или две, независимо от того, сколько строк мне приходилось обрабатывать. Магия Вима.:)
Коды ошибок ядра Linux определены в errno.h . Возвращаемое значение отрицательное, но сам код положительный, и вы найдете
#define ETIMEDOUT 110 /* Connection timed out */
Таким образом, iPhone отображается как USB-устройство Ethernet, а затем ядро пытается установить (виртуальный )носитель для этого устройства, отправляя управляющее сообщение USB, но это сообщение не принимается iPhone, и время вышло.
Этому может быть несколько причин. Если бы это работало вчера, я бы исключил проблемы с драйверами, поэтому я предполагаю, что проблемы с оборудованием или кабелем -начальные пакеты USB передаются нормально, но затем они перестают работать.