在另一个文件的每一行的末尾添加一个文件的内容

时间:2018-01-05 20:16:36

标签: python file sed

我想添加包含密码的文件的内容,并将其添加到包含电子邮件列表的其他文件中,我希望格式为:

email@example.com:examplepass

我试图用Python脚本做到这一点但到目前为止没有运气,用sed尝试它并且它有效,但不是我想要它做的。我创建了一个新的环境变量,我将其设置如下:

export FILES=$(cat pass.txt)

然后我使用了命令

sed 's/$/$($FILES)/' test.txt > test5000.txt

将每行的每个密码添加到电子邮件列表中,而不是将其打印出来

email@example.com:$FILES

2 个答案:

答案 0 :(得分:2)

很确定你只想要paste -d: test.txt pass.txt

答案 1 :(得分:0)

它适用于sed但是用单引号括起来可以避免评估env。变量。所以请用双引号括起来。此外,无需在替换中重复$。

sed "s/\$/($FILES)/" test.txt > test5000.txt 

警告:很有可能在替换中解释了一些密码字符(例如,\1或甚至引号等向后引用的内容!! ...)所以这个解决方案不是'当你不知道$FILES

中的内容时,真的可行

Python版本(我建议使用此解决方案),未经测试但对此非常有信心,并且即使密码文件包含特殊字符也是万无一失的:

with open('pass.txt') as fr:
    passwords = fr.read()
with open("test.txt") as fr, open('test50000.txt', "w") as fw:
   fw.writelines('{}{}\n'.format(t.rstrip(),passwords) for t in fr)

首先,读取密码文件,然后打开输入&输出并写入由用户名组成的行(没有行终止符)+密码+行终止符以便更好地理解。