Введите в конце определенной строки

У меня есть следующий файл file.txt, который следует тому же шаблону, и я хочу изменить его там, где находится этот файл, добавив IP:

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

Я хочу добавить 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 
1
задан 19 January 2019 в 10:17
1 ответ

Используя sed , вам понадобится что-то вроде следующего:

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

Сначала мы сопоставим шаблон, к которому хотим добавить. Затем мы используем s / $ / .. что означает добавить ! 10.249.245.90, как есть в конец строки.

Вот еще одно решение awk :

awk '/USER CONSOLA/{x=x; print $0",!10.249.245.90,";next}1' file.txt
2
ответ дан 3 December 2019 в 20:10

Теги

Похожие вопросы