![]() |
Hallo und herzlich Willkommen aus den Vereinigten Staaten, die UNIX-und Linux-Foren! Vielen Dank für Ihren Besuch und die Teilnahme an unserem Global Community.
|
|
Google unix.com
|
|||||||
| Foren | Registrieren | Forum-Regeln | Links | Alben | FAQ | Benutzerliste | Kalender | Suche | Die heutige Beiträge | Alle Foren als gelesen markieren |
| Shell Programmierung und Scripting Post Fragen zu ksh, csh, sh, bash, Perl, PHP, sed, awk und anderen Shell-Skripte und Shell-Scripting-Sprachen hier. |
Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
|
||||
| Faden | Thread Starter | Forum | Antworten | Last Post |
| Asterisk auf IPCop Asterisk 1.4.20 für IPCop 1.4.18 (Default branch) | iBot | Software-Releases - RSS News | 0 | 05-21-2008 09:40 PM |
| Asterisk auf IPCop Asterisk 1.4.19.2 für IPCop 1.4.18 (Default branch) | iBot | Software-Releases - RSS News | 0 | 05-14-2008 08:20 AM |
| Asterisk auf IPCop IPCop 1.4.18 mit Asterisk 1.4.19.1 (Asterisk IPCop ISO Zweigstelle) | iBot | Software-Releases - RSS News | 0 | 04-26-2008 05:10 AM |
| Asterisk auf IPCop Asterisk 1.4.19.1 für IPCop 1.4.18 (Default branch) | iBot | Software-Releases - RSS News | 0 | 04-25-2008 05:10 PM |
| Weitergabe Stern zu einem Skript als Variable | GKnight | Shell Programmierung und Scripting | 9 | 04-02-2008 11:32 AM |
![]() |
|
|
LinkBack | Thread Tools | Suche diesen Thread | Rate Thread | Anzeige-Modi |
|
|
|
||||
|
Wie zu ignorieren * (Stern) in einer Variable
Ich benutze ein Shell-Skript zu lesen, SQL-Anweisungen in einer DB2-Tabelle und schreibt diesen in eine Datei. Das Problem ist, dass ich einige SQL-Anweisungen haben ein "*" enthalten, die sich da die Liste der Dateien im aktuellen Verzeichnis, wenn ich das Skript ausführen. Wie kann ich verhindern, dass die "*" nicht gelöst?
Aktuelle SQL: SELECT * FROM RTDS.TSPSTOPS Ergebnis SQL: SELECT gen.out gen.sql gen2.sql getsql.sh getsql2.sh sqlrow.out sqltxt.out test.sh AUS RTDS.TSPSTOPS Code-Snippet: sqlrow \u003d $ (db2 + c-x fetch von C1) fetchrc \u003d $? echo fetchrc \u003d $ rc echo $ (sqlrow) |
|
||||
|
Zitat:
|
|
||||
|
Ich entschuldige mich für mein Beispiel nicht ganz klar. Die "Aktuelle SQL", die in meinem OP ist der Wert, den die holen wieder in die Shell-Variable "sqlrow". Da die tatsächlichen SQL verfügt über einen "*" in ihm, wenn ich echo $ sqlrow, die mit * wird gelöst und ersetzt in der Liste der Dateien aus dem aktuellen Verzeichnis.
So, duh, ich war in der Lage zu lösen dass man durch die Anbringung von doppelten Anführungszeichen um die Variable auf das Echo, wie: echo "$ sqlrow" Nun, die Handlung ein bisschen dicker. Die SQL wird in einem varchar (32000) auf dem Quell-Tabelle. Wenn ich die Anführungszeichen auf das Echo, Ich bekomme jetzt einen Datensatz echo'd hin, dass es 32000 Byte lang. (Die eigentliche SQL-Anweisungen wird von 50 - 10000 bytes). Also, ich nicht schreiben wollen alle, dass zusätzlicher Speicherplatz auf das Ende eines jeden Datensatzes. Ich kann die Länge der SQL, und ich bin jetzt versuchen, substr in awk wie folgt wobei $ rowlen enthält die Länge der SQL: sqltxt \u003d `echo" $ sqlrow "| awk '(print substr ($ 0,1, $ rl))" \u003d $ rl rowlen " Aber ich bin jetzt immer die Meldung "awk: Datensatz" SELECT * F. .. " zu lang " Was ist der beste Weg für mich zu unterdrücken, die entweder zusätzliche Leerzeichen am Ende eines jeden Datensatzes oder substr die tatsächlichen SQL? |
|
|||||
|
tr-s ""
wird extra unterdrücken "" Raum charcters Code:
> line2="This 2spaces 3spaces 4and5after *" > echo "$line2" This 2spaces 3spaces 4and5after * > echo "$line2" | tr -s " " This 2spaces 3spaces 4and5after * |
|
||||
|
Vielen Dank!
joeyg,
Vielen Dank für den Tipp zu dem "tr" Kommando. Er tut, was ich brauche, es zu tun. nur als Information, ich war auch in der Lage, um Chaos und den "Cut"-Befehl zu arbeiten, da hatte ich die Erklärung der Länge zur Verfügung steht, aber ich denke, ich bleibe mit "tr" Danke, bp |
|
||||
|
Zitat:
Code:
create table my_table
(sql_statement varchar(1000));
insert into my_table values ('select * from table2');
select sql_statement || '#' from my_table;
Code:
SQL_STATEMENT||'#' ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- select * from table2# 1 row selected. Code:
select trim(sql_statement) || '#' from my_table; Code:
TRIM(SQL_STATEMENT)||'#' ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- select * from table2# 1 row selected. |
![]() |
| Lesezeichen |
| Tags |
| awk, awk trim, trim, trim awk |
| Thread Tools | Suche diesen Thread |
| Anzeige-Modi | Rate this thread |
|
|