2016-10-04 5 views
0

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' 

Antwort

2

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 
+0

Der Befehl sollte lauten: sed 's/\ $/\\\ $ \ $/g' – Dez

+0

und wie kann Echo 'abc pqr $ v_val xyz' | zugewiesen werden sed 's/\ $/\\ $$/g' zu einer Variablen – user6615476

+0

@ user6615476: Ich habe ans aktualisiert. Ich hoffe, das kann dir helfen; –

1
input="a\$b" #input is a$b 

dollar="\$" 
doubleDollar="\\\$\$" 
output="${input/$dollar/$doubleDollar}" 

echo $output #a\$$b 
0

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!

0

Wie Sie uns gezeigt haben, wo Ihre Eingabezeichenfolge ist, werde ich zwei Möglichkeiten zeigen:

  1. 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.

  2. 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.

Verwandte Themen