Ich habe ein Skript erstellt, das HTML-Code generiert. Am Ende des Skripts muss ich einige Wörter in einer Tabelle hervorheben, indem ich sie fett mache.sed in AIX-Skript funktioniert nicht mit speziellen Zeichen
Also muss ich in den Code ersetzen, jede Instanz WORD von WORD oder WORD
ist natürlich WORD in einer Variablen $ CODE gespeichert dies viel schwieriger zu machen.
Ich versuchte, den Befehl sed unglücklicherweise ohne Erfolg zu verwenden.
sed -e 's/$CODE/<b>$CODE</b>/g' page.html > newpage.html
Ich habe versucht auch mit doppelten Anführungszeichen, mit Escape-Zeichen vor dem /, viele Kombination und doppelte Anführungszeichen, mit | als Trennzeichen, immer ohne Erfolg. Wenn einer von euch mich auf eine Lösung hinweisen könnte, wäre ich wirklich großartig.
PS: Tryed auch mit awk ... aber mit variabler ist es ein echten Schmerzen in dem ...
EDIT: Hier ist mein genauer Code ist es, alle Sie zu helfen. code_list.txt enthält eine Liste von CODE-Textzeilen.
for y in code_list.txt
do
CODE=$(echo $y | cut -f1 -d-)
awk -v code="$CODE" '{if(match($0,code)){gsub(code,"<b>"code"</b>")}} 1' $SCRIPTS/html/daily_running_jobs.html > $SCRIPTS/html/daily_running_jobs_highlight.html
mv $SCRIPTS/html/daily_running_jobs_highlight.html $SCRIPTS/html/daily_running_jobs.html
done
B²
kleine Präzision, wenn ich den Befehl echo, Variablen sind gut übersetzt. Aber der Befehl wurde nicht ausgeführt. –
[bearbeiten] Ihre Frage, um prägnante, testbare Beispieleingabe und erwartete Ausgabe einzuschließen.Schließen Sie solche Anwendungsfälle ein, die Ihrer Meinung nach schwer zu handhaben sind, und wenn Ihre "WORD" s beliebige nicht alphabetische Zeichen enthalten können, beschreiben Sie + diese Fälle auch. Sie können auch Fälle wie "das" und "There" angeben, um zu sehen, wie partielles und case-sensitives Matching gehandhabt wird. Schließlich - verwenden Sie nicht Großbuchstaben für nicht exportierte Variablennamen, um Konflikte mit eingebauten und anderen exportierten Variablennamen zu vermeiden. –