Возникли проблемы с добавлением новой строки при использовании sed для добавления новой строки после сопоставления с шаблоном

commandsestá en desuso y debe reemplazarse con llamadas subprocess. Un reemplazo para commands.getoutput()essubprocess.Popen().communicate():

import subprocess
import shlex


command = shlex.split('/bin/ls -l -a -h')
process = subprocess.Popen(command, stdout=subprocess.PIPE)
stdout, stderr = process.communicate()

banditprobablemente seguirá generando un problema de baja gravedad porque todavía usa subprocess, que no es seguro en sí mismo como cualquier cosa que invoque un shell, pero esto es inevitable. Vea la advertencia restante como un recordatorio sobre una posible inseguridad en su código -dependiendo de lo que realmente esté llamando en un shell, debe hacer la verificación usted mismo -¿es un comando codificado en una constante de cadena, o un entrada del usuario, o algo variable dependiendo del código de llamada? En cualquier caso, siempre se aconseja hacer la higienización,Python tiene el módulopipespara eso.

-1
19.06.2019, 19:39
1 ответ

Предположим, что исходный файл содержал:

$ cat file
managedScripts.Rel_Tag_St_bit("${env.templo_directory}/version.txt")
methods.mavenWithGoals("deploy -DaltDeploymentRepository=)

Вы можете изменить его с помощью:

$ sed -e '/Rel_Tag_St_bit/a\'$'\nmethods.mavenWithGoals("mvn so:s -f abc/pom.xml")\n' file
managedScripts.Rel_Tag_St_bit("${env.templo_directory}/version.txt")
methods.mavenWithGoals("mvn so:s -f abc/pom.xml")
methods.mavenWithGoals("deploy -DaltDeploymentRepository=)

То есть используется оболочка (bash,ksh,zsh )C -строки $'...'для введения новых строк.

0
28.04.2021, 23:32

Теги

Похожие вопросы