Bash

在特定行的末尾輸入

  • January 19, 2019

我有以下遵循相同模式的 file.txt,我想通過添加 ip 來修改該文件所在的位置:

# gfhfhgfh
gfhfghgfhgfhgfh
MACs 
# access
USER CONSOLA *,!10.249.247.3,!10.249.245.65
/bin/false

我想在包含作為贊助人 USER CONSOLE 的行的末尾添加一個 ip:

USER CONSOLA *,!10.249.247.4,!10.249.245.65,!10.249.245.90,

我現在只設法在整個文件中添加 ip,但沒有在所使用的程式碼的特定行中添加

sed 's/\r\?$/,!10.10.11.1/' file.txt 

使用sed您需要以下內容:

sed '/USER CONSOLA/s/$/,!10.249.245.90,/' file.txt

首先,我們將匹配我們想要附加到的模式。然後我們使用s/$/.. which 表示!10.249.245.90,按原樣添加到行尾。

這是另一個awk解決方案:

awk '/USER CONSOLA/{x=x; print $0",!10.249.245.90,";next}1' file.txt

引用自:https://serverfault.com/questions/949841