我有一个包含名称列表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
行中为什么要添加这么多额外的字符
我该如何解决?
答案 0 :(得分:2)
您不能使用像这样的简单命令吗?
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