Ich bin relativ neu in Unix-Shell-Skripten. Hier ist mein Problem. Ich habe dieses Skript ...So extrahieren Sie eine Teilzeichenfolge, die mit einem Muster aus einer Unix-Shell-Variablen übereinstimmt
isql -S$server -D$database -U$userID -P$password <<EOF> $test
exec MY_STORED_PROC
go
EOF
echo $test
dieses Ergebnis zu erzeugen ...
Msg 257, Level 16, State 1:
Server 'MY_SERVER', Procedure 'MY_STORED_PROC':
Implicit conversion from datatype 'VARCHAR' to 'NUMERIC' is not allowed. Use
the CONVERT function to run this query.
(1 row affected)
(return status = 257)
Statt die isql Ausgabe von Echo, ich möchte die „257“ extrahieren und kleben Sie es in eine andere Variable, so kann ich 257 aus dem Skript zurückgeben. Ich denke, eine Art sed oder grep Befehl wird dies tun, aber ich weiß nicht wirklich wo ich anfangen soll.
Irgendwelche Vorschläge?
Danke. Deshalb frage ich: Ich wollte erfahrene Unix-Programmierer sehen, die ein echtes Problem lösen würden, damit ich lernen konnte, es selbst zu tun. In diesem Fall leitet der Befehl tail die letzte Zeile von $ test an den Befehl sed, der den Inhalt von \\ (und) zurückgibt (vorausgesetzt, das Gesamtmuster stimmt überein). Ist das richtig? –
Ja, was auch immer zwischen dem \\ (und \\) ist, wird dann durch \ 1 in der Ersetzung angegeben. [0-9] \ + bedeutet, dass eine oder mehrere Ziffern übereinstimmen. –