Shell awk引用程序文本
如果我跑步:Shell awk引用程序文本,shell,awk,sed,bosh,Shell,Awk,Sed,Bosh,如果我跑步: awk '/-jar org.eclipse.osgi.jar --launcher.suppressE/ {print "-Dcom.abc.service.gw.enableValidation=false \\"}1' rest_gw.sh >> new_gw.sh 该命令在第行-jar org.eclipse.osgi.jar--launcher.suppress -Djava.security.properties=/var/vcap/p
awk '/-jar org.eclipse.osgi.jar --launcher.suppressE/ {print "-Dcom.abc.service.gw.enableValidation=false \\"}1' rest_gw.sh >> new_gw.sh
该命令在第行-jar org.eclipse.osgi.jar--launcher.suppress
-Djava.security.properties=/var/vcap/packages/helpers/data.properties \
-Dcom.abc.service.gw.enableValidation=false \ <<<<<<<<<<<<<<<<<<<<<<<<<
-jar org.eclipse.osgi.jar --launcher.suppressErrors -consoleLog &
尝试:
bosh -d test-105 ssh service/0 -c 'sudo /usr/bin/awk '\'/-jar org.eclipse.osgi.jar --launcher.suppressErrors/ {print \"-Dcom.abc.service.gw.enableValidation=false \\\"}1\' /var/vcap/data/jobs/gw_rest/*/target/gw.sh >> /tmp/new_gw.sh'
到目前为止运气不好。有人能建议正确的方法吗?太好了
编辑:
建议使用sed命令:
bosh -d test-105 ssh service/0 -c 'sudo sed '/-jar org.eclipse.osgi.jar --launcher.suppressE/i -Dcom.abc.service.gw.enableValidation=false \\' /var/vcap/data/jobs/gw_rest/*/target/gw.sh >> /tmp/new_gw.sh'
未知标志启动器。抑制/i'
这最终奏效了:
bosh -d test-105 ssh service/0 -c "sudo sed '/-jar org.eclipse.osgi.jar --launcher.suppressErrors -consoleLog/i -Dcom.abc.service.gw.enableValidation=false \\\' /var/vcap/data/jobs/gw_rest/*/target/gw.sh >> /tmp/new_gw.sh"
我强烈建议使用
sed
命令将行插入为:
sed '/-jar org.eclipse.osgi.jar --launcher.suppressE/i -Dcom.abc.service.gw.enableValidation=false \\' rest_gw.sh >> new_gw.sh
它更简洁。试试:
awk'/-jar org\.eclipse\.osgi\.jar--launcher.suppressErrors/{print”-Dcom.abc.service.gw.enableValidation=false\\\\“}1'
编辑脚本可能不是个好主意。添加一个命令行参数,如果传入一个选项,该参数将添加此选项,否则将忽略它。同意。我们也可以和塞德一起做。只是以嵌套方式运行命令会导致问题。如果我按原样运行sed命令,它会给出unknown标志launcher.suppressE/i'
。更新问题。如果我删除launcher.suppress
,它会给出未知标志D'
。我也看到了awk的这些问题。你在某个地方有引用问题。我建议你把剧本分段。到更小的块。按顺序手动运行它们,放入大量的echo
消息,使用bashshell来符合标准。你是对的。这确实是一个引用问题。我已使用sed
更新了最终结果。谢谢!:)
sed '/-jar org.eclipse.osgi.jar --launcher.suppressE/i -Dcom.abc.service.gw.enableValidation=false \\' rest_gw.sh >> new_gw.sh