Совпадение в начале строки(^
привязка )и замена нового текста в конце строки($
привязка):
$ sed '/^USER CONSOLA/ s/$/,!10.10.11.1/' file.txt
# gfhfhgfh
gfhfghgfhgfhgfh
MACs
# access
USER CONSOLA *,!10.249.247.3,!10.249.245.65,!10.10.11.1
/bin/false
Если в вашем файле есть окончания строк CRLF в стиле Windows/DOS, которые вы хотите сохранить, измените вышеуказанное на
sed '/^USER CONSOLA/ s/\r$/,!10.10.11.1\r/' file.txt
Если вы не хотите сохранять окончания DOS,затем либо сначала удалите их с помощью dos2unix
, либо добавив для этого дополнительную команду в sed:
sed -e 's/\r$//' -e '/^USER CONSOLA/ s/$/,!10.10.11.1/' file.txt
Используемый ниже метод для достижения того же
sed "/USER CONSOLA/s/.*/&\,\!10.249.245.90,/g" filename
выход
# gfhfhgfh
gfhfghgfhgfhgfh
MACs
# access
USER CONSOLA *,!10.249.247.3,!10.249.245.65,!10.249.245.90,
/bin/false