Назад | Перейти на главную страницу

Sed для замены / слияния строки в etc / group

У меня есть список пользователей из 1 команды -

getent group ldap-group|cut -c 32-700

Это дает мне список пользователей в форме

user1,user2,user3...

Я хотел бы вставить это в / etc / group под sshd

sshd:x:74:adminuser,root

И я бы хотел сохранить весь текст до root.

Я пробовал эту команду sed, но на самом деле она неправильно изменяет файл.

sudo sed -i "s/^(sshd:x:\\d+:root,).*/\\$1(getent group ldap-group|cut -c 32-700)/" /etc/group

Может ли кто-нибудь помочь мне с синтаксисом sed?

Я бы не стал делать это одним лайнером

groupappend=$(getent group ldap-group|cut -c 32-700)
sed -n "/^sshd:/s/$/,$groupappend/p" /etc/group

и если это сработает для вас, тогда

sed -i "/^sshd:/s/$/,$groupappend/" /etc/group

Было непонятно, что вы будете запускать это несколько раз, попробуйте

sed -i "/^sshd/c\sshd:x:74:adminuser,root,$groupappend" /etc/group

вместо.