python - 在文件中的特定行之后添加一个空行

标签 python bash sed

有人可以帮我吗?我想在“-----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-----'

最佳答案

有很多方法,例如使用awk:

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

Vi 也可以编写脚本来打开文件、添加两行并关闭(至少 Vim 可以。)

关于python - 在文件中的特定行之后添加一个空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51125063/

相关文章:

python - 如何在Python中获取除某些值之外的排序数组的索引?

linux - 如果找到第一个字符为 "<"的行,则打印第一个字符为 ">"的行的第一次出现

c - 在 posix 上限制进程的脚本

bash - 分离模式下的启动 screen 没有源环境

linux - 如何使用 linux 命令交换重复格式数据 block 内的数字?

bash - sed 错误提示 "extra characters after command"

python - 图像边缘检测 Keras 模型损失没有改善

python - 如何从 Django 应用程序提供视频文件以在浏览器中播放?

python - 查找多列中的重复项并删除行 - Pandas

sed - 我如何在正则表达式之后打印单词而不是相似的单词?