Как вставить текст поочередно из двух файлов с общим шаблоном

Я нашел ответ с помощью очень хорошего друга, который очень терпеливо отнесся к моей проблеме. Проблема заключалась в том, что клиент putty не был настроен для приема моего ключа, у меня были авторизованные файлы ключей и все права, просто эта маленькая проблема не была замечена до сих пор.

В моем клиенте putty я не вставлял закрытый ключ в свое отделение, и изначально я думал, что удаленный сервер просто заглянет в мои файлы и проверит, есть ли там ключ. Я был неправ, и мой друг сказал мне, что это будет огромным риском для безопасности, и сказал, что закрытый ключ должен быть помещен в замазку. O:

enter image description here

Спасибо, ребята, что тоже помогли, я многому научился в процессе работы с Эта проблема.

4
09.10.2017, 11:51
1 ответ

Вы можете добиться этого с помощьюawk

awk -v RS='' '
    FNR == NR { block[NR] = $0; next }
    { print block[FNR] "\n\n" $0 "\n" }
' file1 file2

Блоки разделяются пустыми строками(RS=''). Первая строка(FNR == NR)сохраняет блоки file1в массив block. Для каждого блока file2вторая строка выводит соответствующий блок в file1, а затем блок в file2.

Примечания:

  • Я предполагаю, что каждый файл содержит одинаковое количество текстовых блоков
  • Для правильного форматирования убедитесь, что за последним блоком в каждом файле следует пустая строка.

Если в каждом файле разное количество блоков, вот (заведомо хакерское )решение с использованием bashи инструментов GNU sedиpaste:

paste -z -d '\n' <(sed -z 's/\n\n/\n\x00/g' file1) <(sed -z 's/\n\n/\n\n\x00/g' file2)

Команды sedдобавляют нулевой байт к разделителям блоков (пустых строк ). pasteиспользует этот нулевой байт в качестве разделителя и печатает каждый блок по очереди, разделяя их новой строкой.

1
27.01.2020, 20:59

Теги

Похожие вопросы