2016-11-15 3 views
0

Dies ist Voraussetzung i die folgende ZeichenfolgeWie Shell-Skript zu machen, um Änderungen durch Endanwender leicht

OPTIONS="-p ${PIDFILE}" 

mit

OPTIONS_1234="-p ${PIDFILE_1234} -ORBEndpoint iiop://10.12.23.34:1234" 

OPTIONS_1235="-p ${PIDFILE_1235} -ORBEndpoint iiop://10.12.23.34:1235" 

OPTIONS_1236="-p ${PIDFILE_1236} -ORBEndpoint iiop://10.12.23.34:1236" 

für dieses Skript ich folge ersetzen möchten um zu arbeiten

sed '0,/\PIDFILE=\/var\/run\/Naming_Service.pid/s//\PIDFILE_13021=\/var\/run\/Naming_Service_13021.pid\n\PIDFILE_13022=\/var\/run\/Naming_Service_13022.pid\n\PIDFILE_13023=\/var\/run\/Naming_Service_13023.pid\n /' tao > tao_pid 
sed '0,/\OPTIONS="-p ${PIDFILE}"/ s//\OPTIONS_13021="-p ${PIDFILE_13021} -ORBEndpoint iiop:\/\/10.12.23.34:13021"\n\OPTIONS_13022="-p ${PIDFILE_13022} -ORBEndpoint iiop:\/\/10.12.23.34:13022"\n\OPTIONS_13023="-p ${PIDFILE_13023} -ORBEndpoint iiop:\/\/10.12.23.34:13023"\n /' script > new_script 

Aber wenn Anwender auf eine ähnliche

hinzufügen möchten
OPTIONS_1236="-p ${PIDFILE_1236} -ORBEndpoint iiop://10.12.23.34:1237" 

es schwierig, Sonderzeichen und alle zu pflegen. jeder kann am besten optimierte Art und Weise vorschlagen zu tun, das sollte für Endanwender einfach sein

+0

Können Sie bitte den Inhalt der Eingabedatei und erwartete Ausgabe teilen? –

+0

Mögliches Duplikat von [Shell-Skript verwenden, um die Zeichenfolge in Datei durch eine andere Zeichenfolge mit Sonderzeichen zu ersetzen] (http://stackoverflow.com/questions/40601465/using-shell-script-to-replace-the-string-in- Datei-mit-einem-anderen-String-hasting-spec) –

Antwort

0

Sie eine Variable mit dem gewünschten Wert einstellen kann und es in einem sed Befehl injizieren:

num=1234; 
sed 's~^\(OPTIONS\)="\(-p \${PIDFILE\)}~\1'"_$num"'="\2'"_$num"'} -ORBEndpoint iiop://10.12.23.34:'"$num"'~' <<< 'OPTIONS="-p ${PIDFILE}"' 

Ausgang::

OPTIONS_1234="-p ${PIDFILE_1234} -ORBEndpoint iiop://10.12.23.34:1234" 

Verwenden einer Schleife:

for num in 1234 1235 1236; do 
    sed 's~^\(OPTIONS\)="\(-p \${PIDFILE\)}~\1'"_$num"'="\2'"_$num"'} -ORBEndpoint iiop://10.12.23.34:'"$num"'~' <<< 'OPTIONS="-p ${PIDFILE}"' 
done 

Ausgabe:

OPTIONS_1234="-p ${PIDFILE_1234} -ORBEndpoint iiop://10.12.23.34:1234" 
OPTIONS_1235="-p ${PIDFILE_1235} -ORBEndpoint iiop://10.12.23.34:1235" 
OPTIONS_1236="-p ${PIDFILE_1236} -ORBEndpoint iiop://10.12.23.34:1236" 
Verwandte Themen