当前位置: 首页 > 面试题库 >

Bash:在文件中的特定位置插入一行

朱鹏
2023-03-14
问题内容

我正在编写一个脚本,要求我在配置文件的特定部分中添加行。例如

之前:

ServerActors=IpServer.UdpServerUplink MasterServerAddress=unreal.epicgames.com MasterServerPort=27900
ServerActors=IpServer.UdpServerUplink MasterServerAddress=master0.gamespy.com MasterServerPort=27900
ServerActors=IpServer.UdpServerUplink MasterServerAddress=master.mplayer.com MasterServerPort=27900
ServerActors=UWeb.WebServer

后:

ServerActors=IpServer.UdpServerUplink MasterServerAddress=unreal.epicgames.com MasterServerPort=27900
ServerActors=IpServer.UdpServerUplink MasterServerAddress=master0.gamespy.com MasterServerPort=27900
ServerActors=IpServer.UdpServerUplink MasterServerAddress=master.mplayer.com MasterServerPort=27900
ServerActors=IpServer.UdpServerUplink MasterServerAddress=master.qtracker.com MasterServerPort=27900
ServerActors=UWeb.WebServer

如您所见,添加了新行。我的bash脚本如何插入行?我猜我将需要使用sed。


问题答案:

如果要在特定字符串匹配之后添加一行:

$ awk '/master.mplayer.com/ { print; print "new line"; next }1' foo.input
ServerActors=IpServer.UdpServerUplink MasterServerAddress=unreal.epicgames.com MasterServerPort=27900
ServerActors=IpServer.UdpServerUplink MasterServerAddress=master0.gamespy.com MasterServerPort=27900
ServerActors=IpServer.UdpServerUplink MasterServerAddress=master.mplayer.com MasterServerPort=27900
new line
ServerActors=UWeb.WebServer


 类似资料:
  • 问题内容: 假设我有一个名为abhishek.txt的文件,其中包含以下行 我是,你叫什么名字。 现在我要写 阿比舍克 在“我是”之后,就像我是Abhishek,..如何直接在此特定位置书写内容。 问题答案: 您不能将数据插入文件中。您可以使用覆盖特定位置的数据。但是,插入操作需要更改其后的所有数据。对于您的情况,请尝试以下类似方法:

  • 问题内容: 假设我有一个大小为n的对象的ArrayList。现在,我想在特定位置插入另一个对象,比方说在索引位置k(大于0且小于n),并且我希望索引位置k或之后的其他对象向前移动一个索引位置。因此,有什么方法可以直接在Java中执行此操作。实际上,我想在添加新对象时保持列表排序。 问题答案: 要 插入 的特定索引,使用值到ArrayList中: 此方法将移动列表的后续元素。但是您不能保证列表会保持

  • 问题内容: 说我有XML: 如何在As和C之间插入“ nodeB”?在PHP中,最好通过SimpleXML?喜欢: 问题答案: 以下是在其他一些SimpleXMLElement之后插入新的SimpleXMLElement的函数。由于使用SimpleXML不可能直接做到这一点,因此它在幕后使用了一些DOM类/方法来完成工作。 以及如何使用它的示例(特定于您的问题): 如果您想/需要解释它是 如何 工

  • 我真的需要一些帮助来解决我已经努力了几天的地址簿程序。我正在用C语言处理双向链表。我试图在用户输入的位置将节点添加到列表中,从位置0开始。位置将不会被输入超出范围。(在位置0等位置之前,位置1没有插入)但是位置可以重复:将新节点插入在前一个位置占用者之前的位置。(例如:如果位置1有x,并且新节点插入位置1有y,则位置1现在有y,位置2有x) 我需要获取用户输入的位置号,并检索该位置的当前人员,但我

  • 我想写一个函数,将一个节点添加到一个树中,该树以根、节点的值、我想添加新节点的节点的值和一个数字作为参数,根据该数字我将节点添加为左或右子节点(偶数=右子节点,奇数=左子节点)。我不明白我错在哪里,这与BST的概念相同,只是其他条件。如果有任何帮助,我将不胜感激。 例如: Tnode*insert(Tnode*root,int data,int father,int leftOrRight);插入

  • 问题内容: 我创建了一些黄瓜测试步骤和一个小的Cucumber测试用例,它们是通过JUnit运行的,如下所示: 现在,可以从类路径位置自动加载Cucumber功能文件, 我想知道如何告诉黄瓜我的特征文件的位置,因为我需要它从类路径之外的位置(例如data //)加载它们。 问题答案: 我找到了解决方案, @ Cucumber.Options批注中,除了设置报告输出格式和位置外,还允许设置功能文件的