【问题标题】:copy a part of a line from file1 to specific place in file2 using sed or any other command使用 sed 或任何其他命令将文件 1 中的一行的一部分复制到文件 2 中的特定位置
【发布时间】:2022-01-08 01:37:07
【问题描述】:

朋友们,我是 linux 终端及其命令的新手,我需要帮助来解决这种情况:

我有 2 个文件:

cat file1:
line1
line2
key=
line4


cat file2:
line1
line2
line3
secret: 12345
line5

我需要做的是从file2复制“12345”并将其粘贴到file1中“key=”的前面 重要的是秘密值(在此示例中为 12345)每次都会更改,并且对于另一台服务器,它不再是 12345。我如何使用 sed 或其他任何东西来做到这一点? 感谢您的帮助

【问题讨论】:

  • 使用sedgrep 从file2 中捕获秘密并将其存储在变量中。用它来构造一个sed -i 命令来更新file1。
  • 欢迎来到 Stack Overflow。在您向我们寻求帮助之前,您应该努力自己解决问题。当您询问如何“使用 sed 或其他任何工具”执行此操作时,这表明您要么精通 sed 和所有其他工具,,要么您只是要求我们为您编写一个命令,您将使用但不会费心去理解。
  • 你尝试了什么?你的代码在哪里?
  • 谢谢@JohnBollinger,我照你说的做了,效果很好

标签: python linux bash ubuntu script


【解决方案1】:

下一个命令应该可以在 Ubuntu 上运行:

cat file2 | grep "secret:" | tail -1 | sed 's/^secret://' | xargs -I{} sed  -i 's/key=.*$/key={}/' file1

下一个命令适用于我的 MacOS:

cat file2 | grep "secret:" | tail -1 | sed 's/^secret://' | xargs -I{} sed  -i.backup 's/key=.*$/key={}/' file1

【讨论】:

  • 感谢您的回答,在@JohnBollinger 的帮助下问题解决了
猜你喜欢
  • 2021-06-23
  • 1970-01-01
  • 2014-06-17
  • 2013-12-09
  • 2020-12-28
  • 1970-01-01
  • 2018-05-24
  • 1970-01-01
  • 2017-11-09
相关资源
最近更新 更多