Добавить пустую строку после определенной строки в файле

1

Может кто-то помочь мне, пожалуйста? Я хочу добавить пустую строку (введите) после строки с "-----BEGIN RSA PRIVATE KEY-----" и пустую строку (введите) перед строкой с "-----END RSA PRIVATE KEY-----"

Все данные в файле не статичны, поэтому я думаю, что это можно сделать с помощью sed или python на основе количества строк (количество строк всегда одинаково)...

Вот мой файл (открытый с помощью vi с командой "set nu"):

      1 oc_ci:
  2   password: kyvmRHb88c7Y6JJnkqsdkYj4R
  3   username: admin
  4 uc_ci:
  5   password: 7a43ba66480b633195acd7a33f627545e9e87f1c
  6   tenant: admin
  7   username: admin
  8 uc_ssh_creds:
  9   username: heat-admin
 10   password: '-----BEGIN RSA PRIVATE KEY-----
 11 MIIEpQIBAAKCAQEAr0Kj5sL7QrkMn5+YK7/0DxCeeYmV0qTBbOTv0SGf4FHUKiNO
 12 ZcHnQHY+AF/ilAliyL9nxFW04nsVPwLWFQRunDu2SS9d05cRYwZJqLyrwNMAAMeg
 13 GeDGlVk2MDChNoRrDZZJ1PfRBME9SF1jHfPDnms18CEEGWUff1Tjad6toM/draKP
 14 Keh6M0Rs1slVUjACyB1H3I9GceY7k8aQUJtHKR/6u/X3ae4k27+yEFGx4ail1XvR
 15 zq9kaqQbiCxe2P+NMFVIZQsCXgl9v9pux1WLyg3xYnLCtdgJfttQNkpmvApAhSXg
 16 Yjyr19po8hYUSGWbOk1xjPSFNmAJodFaL9LN4QIDAQABAoIBAAIp124c0A81y5MY
 17 3D8GApRBB0PG0AOmpwCaHt+9A4U4XV8bynb1Gs6v5voINPrQ1thVjIle6Xm2PT/m
 18 4A+oW1kwX4KtxAG9pqhLRpN/qLsbn69ix3YqUSk8za9wmjzbC5tCVKz9ViYx4HjJ
 19 NlUDUlHdTvAk6DEMD4R53sjKx+fpQ76Qrxr7WHGJAtr1LQz2xr1hnxpdc5h4gaXy
 20 Bs1Qui0M3+q1w6DsdNXLR9ZM01QN+6vOHhdJFqHYxUq/C3s+wjouQIYJN7z8/ZVu
 21 QWo4n5ZOxDFjiCxUuo47Wzqwtuyu+gdheHz6vNsMBGEAZRlUvG0TP7buSf6/UFF6
 22 7WTjJWUCgYEA2/kcA1SDg5GMK2ZPjd+u9XL2JPg1RX7w7ooLkSW2r90opk2F5G9Q
 23 42DUvvA9oF0JYBfG5+SyzBnVEVeKcNXFquPewEe/IKrkHe5ed2Ju9OnntjmoCQkN
 24 MUVEWVqiaIIocSZdeVvWgsjMoujthTqkFanU4Pk0M1KsD8FBAWwPCY8CgYEAy/bX
 25 qLxAwTDsWDuezMhQaf/qiwFJ4LJfRUzrLPFzJmXl755SOLvuqD5w66nWKev/35kR
 26 B9komy8jfELhJUw/bi8y6DiXlQ5d1giYfq38e///d4zfv7sQLk8ir1Pr1UeFLyNz
 27 UlBf4j6PYRXjOgSho16Th1fxZDtCWnTlgkbqmY8CgYEArefPgcJ7BrU2v8ju9Bb3
 28 Vw1AFBI2625kQ/HXGzVZrMeHr5JyXBq1NE4FY77CudlT5ChoFET2Je32SPOQe4xF
 29 7cig/hq6u7TfC9q7zF6BohaaHbKPajVBvMYqNwo0g7MDDhFqrNsyR8tAHTtRLJcj
 30 ygyuQ/5AiqK9bOc34Uvwx3kCgYEAvV8B/HhM5xI1XfZ9CkUx5Djn2wfnP+hc7Eru
 31 T1wePZh+VGv6ixJyE2NmFGgrn+CuQTwsw8ysFuk9WTH/OFIC0pqf+VwR4SLlnMN+
 32 Up/XvImC98ykMa/M5jIzUfXpEKzGy21utQ5K+BR9qvZXcpa6PKSi9RaB2T3r7XB7
 33 ZunRB6ECgYEAmQ38xl7AZgIW0rkEe/9mm0naMwG4YPXVYJxByRfmaoJ7qK9dEDYa
 34 tUNg+crSvl+JZxprkARZTjIq4Mwbg/JL/q5etM6tK4BKuJGSCGEqZ16fUYFUyDj1
 35 c2q99tcpGItrbccHjRjSbxk2FVDTnhbxmftWFYelTM/uIJTcgEtNpzU=
 36 -----END RSA PRIVATE KEY-----'

Я хочу (вручную были добавлены две пустые строки):

      1 oc_ci:
  2   password: kyvmRHb88c7Y6JJnkqsdkYj4R
  3   username: admin
  4 uc_ci:
  5   password: 7a43ba66480b633195acd7a33f627545e9e87f1c
  6   tenant: admin
  7   username: admin
  8 uc_ssh_creds:
  9   username: heat-admin
 10   password: '-----BEGIN RSA PRIVATE KEY-----
 11 
 12 MIIEpQIBAAKCAQEAr0Kj5sL7QrkMn5+YK7/0DxCeeYmV0qTBbOTv0SGf4FHUKiNO
 13 ZcHnQHY+AF/ilAliyL9nxFW04nsVPwLWFQRunDu2SS9d05cRYwZJqLyrwNMAAMeg
 14 GeDGlVk2MDChNoRrDZZJ1PfRBME9SF1jHfPDnms18CEEGWUff1Tjad6toM/draKP
 15 Keh6M0Rs1slVUjACyB1H3I9GceY7k8aQUJtHKR/6u/X3ae4k27+yEFGx4ail1XvR
 16 zq9kaqQbiCxe2P+NMFVIZQsCXgl9v9pux1WLyg3xYnLCtdgJfttQNkpmvApAhSXg
 17 Yjyr19po8hYUSGWbOk1xjPSFNmAJodFaL9LN4QIDAQABAoIBAAIp124c0A81y5MY
 18 3D8GApRBB0PG0AOmpwCaHt+9A4U4XV8bynb1Gs6v5voINPrQ1thVjIle6Xm2PT/m
 19 4A+oW1kwX4KtxAG9pqhLRpN/qLsbn69ix3YqUSk8za9wmjzbC5tCVKz9ViYx4HjJ
 20 NlUDUlHdTvAk6DEMD4R53sjKx+fpQ76Qrxr7WHGJAtr1LQz2xr1hnxpdc5h4gaXy
 21 Bs1Qui0M3+q1w6DsdNXLR9ZM01QN+6vOHhdJFqHYxUq/C3s+wjouQIYJN7z8/ZVu
 22 QWo4n5ZOxDFjiCxUuo47Wzqwtuyu+gdheHz6vNsMBGEAZRlUvG0TP7buSf6/UFF6
 23 7WTjJWUCgYEA2/kcA1SDg5GMK2ZPjd+u9XL2JPg1RX7w7ooLkSW2r90opk2F5G9Q
 24 42DUvvA9oF0JYBfG5+SyzBnVEVeKcNXFquPewEe/IKrkHe5ed2Ju9OnntjmoCQkN
 25 MUVEWVqiaIIocSZdeVvWgsjMoujthTqkFanU4Pk0M1KsD8FBAWwPCY8CgYEAy/bX
 26 qLxAwTDsWDuezMhQaf/qiwFJ4LJfRUzrLPFzJmXl755SOLvuqD5w66nWKev/35kR
 27 B9komy8jfELhJUw/bi8y6DiXlQ5d1giYfq38e///d4zfv7sQLk8ir1Pr1UeFLyNz
 28 UlBf4j6PYRXjOgSho16Th1fxZDtCWnTlgkbqmY8CgYEArefPgcJ7BrU2v8ju9Bb3
 29 Vw1AFBI2625kQ/HXGzVZrMeHr5JyXBq1NE4FY77CudlT5ChoFET2Je32SPOQe4xF
 30 7cig/hq6u7TfC9q7zF6BohaaHbKPajVBvMYqNwo0g7MDDhFqrNsyR8tAHTtRLJcj
 31 ygyuQ/5AiqK9bOc34Uvwx3kCgYEAvV8B/HhM5xI1XfZ9CkUx5Djn2wfnP+hc7Eru
 32 T1wePZh+VGv6ixJyE2NmFGgrn+CuQTwsw8ysFuk9WTH/OFIC0pqf+VwR4SLlnMN+
 33 Up/XvImC98ykMa/M5jIzUfXpEKzGy21utQ5K+BR9qvZXcpa6PKSi9RaB2T3r7XB7
 34 ZunRB6ECgYEAmQ38xl7AZgIW0rkEe/9mm0naMwG4YPXVYJxByRfmaoJ7qK9dEDYa
 35 tUNg+crSvl+JZxprkARZTjIq4Mwbg/JL/q5etM6tK4BKuJGSCGEqZ16fUYFUyDj1
 36 c2q99tcpGItrbccHjRjSbxk2FVDTnhbxmftWFYelTM/uIJTcgEtNpzU=
 37 
 38 -----END RSA PRIVATE KEY-----'
  • 0
    Добро пожаловать в ТАК. Stack Overflow - это сайт вопросов и ответов для профессиональных программистов и энтузиастов. Цель состоит в том, чтобы вы добавили свой собственный код в свой вопрос, чтобы показать, по крайней мере, усилия, предпринятые вами для решения этой проблемы самостоятельно.
Теги:
sed

5 ответов

0
Лучший ответ

Следующее может помочь вам здесь.

awk '/BEGIN RSA/{$0=$0 ORS} /END RSA/{$0=ORS $0}1' Input_file

Если вы хотите сохранить вывод в сам входной файл, добавьте > temp_file && mv temp_file Input_file в приведенную выше команду.

  • 1
    Спасибо большое за вашу помощь!
1

Тонны способов, например, с помощью awk:

awk '/-----END RSA PRIVATE KEY-----/ { print "" }
{ print }
/-----BEGIN RSA PRIVATE KEY-----/ { print "" }' origfile.txt >result.txt

Vi тоже, вероятно, может быть сценарием для открытия файла, добавления двух строк и закрытия (по крайней мере, Vim может.)

  • 0
    Спасибо большое за вашу помощь!
0

Это может сработать для вас (GNU sed):

sed -i '/BEGIN RSA/G;/END RSA/i\\' file

Добавьте пустое пространство удержания после строки, содержащей BEGIN RSA и вставьте пустую строку перед строкой, содержащей END RSA.

  • 0
    Спасибо большое за вашу помощь!
0

Вы можете сделать это легко, используя sed.

sed "s/-----BEGIN RSA PRIVATE KEY-----/&\n/" origfile > newfile
  • 0
    Место для удержания должно быть пустым. seq 1 7 | sed '/6/ G;' вставляет пустую строку после 6, но seq 1 7 | sed '/4/ h; /6/ G;' добавлю номер. Возможно, sed "s/-----BEGIN RSA PRIVATE KEY-----/&\n/" origfile > newfile безопаснее.
  • 0
    Хорошо ... Я обновил свой ответ более безопасным вариантом
Показать ещё 1 комментарий
0

'\n' в python добавляет новое использование строки, где вы хотите добавить новую строку в строку

  • 0
    Да, я знаю о \ n. Но было предпочтительнее не использовать Python. В любом случае, большое спасибо за вашу помощь!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню