ich in diesem Format eine Zeichenfolge habe:
'abc pqr$v_val xyz'.
Wie kann ich $
mit \$$
ersetzen? Ich möchte, dass meine letzte Ausgabe sein: diese
'abc pqr\$$v_val xyz'
ich in diesem Format eine Zeichenfolge habe:
'abc pqr$v_val xyz'.
Wie kann ich $
mit \$$
ersetzen? Ich möchte, dass meine letzte Ausgabe sein: diese
'abc pqr\$$v_val xyz'
Versuchen:
echo 'abc pqr$v_val xyz' | sed 's/\$/\\\$\$/g'
zB:
[email protected]:/tmp$ echo 'abc pqr$v_val xyz' | sed 's/\$/\\\$\$/g'
abc pqr\$$v_val xyz
zuweisen Variable;
#!/bin/bash
var=$(echo 'abc pqr$v_val xyz' | sed 's/\$/\\\$\$/g')
#var=`echo 'abc pqr$v_val xyz' | sed 's/\$/\\\$\$/g'` # you can also use this
echo $var
ZB:
[email protected]:/tmp$ ./test.sh
abc pqr\$$v_val xyz
input="a\$b" #input is a$b
dollar="\$"
doubleDollar="\\\$\$"
output="${input/$dollar/$doubleDollar}"
echo $output #a\$$b
Wenn Sie Perl verwenden, folgenden Code wird gut tun.
$str1 = 'abc pqr$v_val xyz' ;
$str1 =~ s/\$/\\\$\$/g ;
Falls Sie sich mit Shell und dem in einem Shell-Variablen gespeicherten Wert Sie die sed gleichen Effekt nutzen können!
Wie Sie uns gezeigt haben, wo Ihre Eingabezeichenfolge ist, werde ich zwei Möglichkeiten zeigen:
Es ist in einem Bash-Variable (sie $foo
sagen). Dann können wir ersetzen, wie wir erweitern:
echo "${foo//$/'\$$'}"
beachten, dass wir den Austausch zitieren, so dass die Schale nicht $$
mit der Prozess-ID nicht ersetzen.
Es ist Eingabe von einer Datei oder einem anderen Stream. Dann können wir sed
als Filter verwenden:
sed -e 's/\$/\\$$/g'
Hier müssen wir $
im Muster zu entkommen (weil $
Streichhölzer end-of-line in einem regexp), aber nicht in dem Ersatz.
Hinweis: diese beiden ersetzen alle $
vom Eingang; Wenn Sie nur das erste Vorkommen ersetzen möchten, müssen Sie /
anstelle von //
im ersten Beispiel verwenden oder g
aus dem zweiten Beispiel weglassen.
Der Befehl sollte lauten: sed 's/\ $/\\\ $ \ $/g' – Dez
und wie kann Echo 'abc pqr $ v_val xyz' | zugewiesen werden sed 's/\ $/\\ $$/g' zu einer Variablen – user6615476
@ user6615476: Ich habe ans aktualisiert. Ich hoffe, das kann dir helfen; –