У меня есть список пользователей из 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
вместо.