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

标签 linux bash

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

之前:

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

关于linux - Bash:在文件中的特定位置插入一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18272379/

相关文章:

Linux 内核 : what are instruction cache and mp-IRQ subsystem within a terms of function interception via replace?

linux - 命令了解文件夹中安装的内容

linux - 在 BASH 中截断输出

linux - 在 Linux 中查找进程的内存使用情况

bash - 执行 chroot 并在 chroot 中执行命令的 Shell 脚本

Linux 外壳 : How to give parameter to alias of find command?

linux - 在多个端口上监听?

linux - Shell 脚本 - 如何根据输入模拟某些结果?

bash - 在 BASH 中使用 jq 将数组附加到 json

Bash 脚本根据另一个文件中指定的日期从日志文件中提取条目?