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
eu tenho arquivo com texto complexo
print("ERROR: passwords don't match")
password = hash_func(password.encode("UTF-8")).hexdigest()
eu preciso inserir este texto entre eles
with open('/etc/openvpn/clients/%s/login.txt' % username, 'w') as login_log:
login_log.write('%s\n%s\n' % (username, password))
então será assim
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()
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
Você pode fazer isso com 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
(Isso é tudo um único comando.)
Isso deixará você com o arquivo aberto em vi
e a modificação feita, mas o arquivo não será salvo. Você pode olhar e ver se é do jeito que você quer.
Para sair e salvar as alterações, digite :x
e pressione Enter. Para sair e descartar as alterações, digite :q!
e pressione Enter.
Qualquer problema, pressione <Esc>
uma ou duas vezes e tente :q!
novamente.
As citações em edições com script podem ser atrozes muito rapidamente. Eu recomendo que você apenas aprenda a usar vi
e abra o arquivo para editá-lo interativamente; será muito mais fácil do que confundir as citações no comando acima.
Muito, muito mais fácil, se você já tiver as linhas incluídas em um arquivo e desejar inseri-las no outro arquivo em um local específico, poderá ajustar alguns ex
código que eu já escrevi para fazer exatamente isso.