Команда sed добавляет дополнительные символы в файл - PullRequest
0 голосов
/ 11 января 2019

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

cat file.txt
aaaaa
bbbbb
ccccc
ddddd
eeeee
fffff

моя sed команда

while IFS="" read -r name
do
    sed -i "s/${name}/uniquemember: ID=${name},ou=people,ou=names,dc=xxxx,dc=xxx/g" file.txt
done<"file.txt"

теперь результирующий файл

uniquemember: ID=aaaaa,ou=people,ou=names,dc=xxx,dc=xxx
uniquemember: ID=bbbbb,ou=people,ou=names,dc=motorola,dc=xxx
uniquemember: ID=ccccc,ou=people,ou=names,dc=motorola,dc=xxx
uniquemember: ID=uniquemember: ID=ddddd,ou=people,ou=names,dc=xxx,dc=xxxg,ou=people,ou=names,dc=xxx,dc=xxx
uniquemember: ID=eeeee,ou=people,ou=names,dc=xxx,dc=xxx

Я не уверен, почему в эту строку добавляется столько дополнительных символов uniquemember: ID=uniquemember: ID=ddddd,ou=people,ou=names,dc=xxx,dc=xxxg,ou=people,ou=names,dc=xxx,dc=xxx

Как я могу это исправить?

1 Ответ

0 голосов
/ 11 января 2019

Не могли бы вы использовать более простую команду, подобную этой?

sed "s/\(.*\)/uniquemember: ID=\1,ou=people,ou=names,dc=xxxx,dc=xxx/g" file.txt

выход:

uniquemember: ID=aaaaa,ou=people,ou=names,dc=xxxx,dc=xxx
uniquemember: ID=bbbbb,ou=people,ou=names,dc=xxxx,dc=xxx
uniquemember: ID=ccccc,ou=people,ou=names,dc=xxxx,dc=xxx
uniquemember: ID=ddddd,ou=people,ou=names,dc=xxxx,dc=xxx
uniquemember: ID=eeeee,ou=people,ou=names,dc=xxxx,dc=xxx
uniquemember: ID=fffff,ou=people,ou=names,dc=xxxx,dc=xxx
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...