在 Bash 脚本中的特定文件行后添加文本

Nec*_*cco 1 bash shell-script

我有一个ip.txt包含 IP 地址的 txt ( ) 文件。我将它们分组在 TCP 和 UDP 下。文件摘录如下:

#TCP
162.298.38.930
162.298.38.931
162.298.38.932
#UDP
162.298.38.930
162.298.38.931
162.298.38.932
Run Code Online (Sandbox Code Playgroud)

我有一个特定的 IP ( 162.298.38.929) 通过 bash 脚本将两者添加到 TCP 和 UDP 行下的这个 ip.txt 中,所以它应该是这样的。

#TCP
162.298.38.929
162.298.38.930
162.298.38.931
162.298.38.932
#UDP
162.298.38.929
162.298.38.930
162.298.38.931
162.298.38.932
Run Code Online (Sandbox Code Playgroud)

如何在 bash 脚本中实现这一点?行号不适用于我的情况,因为 #TCP 和 #UDP 行号可以更改,因为我在文件中添加了大量注释。Bash 脚本应该在 TCP 和 UDP 下搜索并添加 IP。

Cod*_*ome 5

使用 GNU Sed 的附加操作

假设两个部分都有162.298.38.932,并且您想在两个条目的正下方附加另一个 IP 地址,那么下面的 sed 脚本可以完成这项工作。

sed '/162\.298\.38\.932/a\162.298.38.929' ip.txt
Run Code Online (Sandbox Code Playgroud)