在复杂行之前或之后插入复杂行

在复杂行之前或之后插入复杂行

我有包含复杂文本的文件

    print("ERROR: passwords don't match")

password = hash_func(password.encode("UTF-8")).hexdigest()

我需要在它们之间插入这段文字

with open('/etc/openvpn/clients/%s/login.txt' % username, 'w') as login_log:
    login_log.write('%s\n%s\n' % (username, password))

所以会是这样的

 else:
        print("ERROR: passwords don't match")


with open('/etc/openvpn/clients/%s/login.txt' % username, 'w') as login_log:
    login_log.write('%s\n%s\n' % (username, password))

password = hash_func(password.encode("UTF-8")).hexdigest()

答案1

cat > user.inp << EOL

with open('/etc/openvpn/clients/%s/login.txt' % username, 'w') as login_log:
    login_log.write('%s\n%s\n' % (username, password))
EOL
sed -i '/ERROR: passwords/r user.inp' /root/add.py
fi

答案2

你可以这样做vi

vi -c '/print("ERROR: passwords don'\''t match")/a\

with open('\''/etc/openvpn/clients/%s/login.txt'\'' % username, '\''w'\'') as login_log:
    login_log.write('\''%s\n%s\n'\'' % (username, password))
.' myfile

(这都是一个命令。)

这将使您打开文件vi并进行修改,但文件不会保存。你可以看看它是否是你想要的方式。

要退出并保存更改,请键入:x并按 Enter 键。要退出并放弃更改,请键入:q!并按 Enter 键。

如有问题,请按<Esc>一两次,然后重试:q!


对脚本编辑的引用可能会很快变得非常糟糕。我建议您学习使用vi和打开文件以交互方式编辑它;这比弄清楚上面命令中的引用要容易得多。


容易得多,如果您已经将这些行包含在一个文件中,并且想要将它们插入到另一个文件中的特定位置,那么您可以调整一些ex我已经写过的代码就是这样做。

相关内容