Mit sed zu ersetzen einen string mit dem Inhalt einer variable, auch wenn es ein escape-Zeichen

Ich bin mit
sed -e "s/\*DIVIDER\*/$DIVIDER/g" zu ersetzen *DIVIDER* mit einem vom Benutzer angegebenen string, der gespeichert ist in $DIVIDER. Das problem ist, dass ich will, dass Sie in der Lage, geben Sie die escape-Zeichen, da Ihre Teiler, wie \n oder \t. Wenn ich versuche, ich am Ende mit dem Buchstaben n oder t oder so auf.

Hat jemand irgendwelche Ideen auf, wie dies zu tun? Es wird sehr geschätzt werden!

EDIT: Hier das Fleisch, das Skript, ich muss etwas fehlen.

curl --silent "$URL" > tweets.txt

if [[ `cat tweets.txt` == *\<error\>* ]]; then
    grep -E '(error>)' tweets.txt | \
    sed -e 's/<error>//' -e 's/<\/error>//' |
    sed -e 's/<[^>]*>//g' |

head $headarg | sed G | fmt

else
    echo $REPLACE | awk '{gsub(".", "\\\\&");print}'
    grep -E '(description>)' tweets.txt | \
    sed -n '2,$p' | \
    sed -e 's/<description>//' -e 's/<\/description>//' |
    sed -e 's/<[^>]*>//g' |
    sed -e 's/\&amp\;/\&/g' |
    sed -e 's/\&lt\;/\</g' |
    sed -e 's/\&gt\;/\>/g' |
    sed -e 's/\&quot\;/\"/g' |
    sed -e 's/\&....\;/\?/g' |
    sed -e 's/\&.....\;/\?/g' |
    sed -e 's/^  *//g' |
    sed -e :a -e '$!N;s/\n/\*DIVIDER\*/;ta' |   # Replace newlines with *divider*.
    sed -e "s/\*DIVIDER\*/${DIVIDER//\\/\\\\}/g" |          # Replace *DIVIDER* with the actual divider.

    head $headarg | sed G
fi

Lange Liste von sed-Leitungen ersetzen von Zeichen aus einem XML-Quelle, und die letzten zwei sind diejenigen, die Sie ersetzen sollen, die Zeilenumbrüche, die mit dem angegebenen Zeichen. Ich weiß, es scheint überflüssig, zu ersetzen, eine newline mit einem anderen Zeilenumbruch, aber es war der einfachste Weg, könnte ich kommen mit, lassen Sie Sie Holen Ihre eigenen Teiler. Der Teiler Ersatz funktioniert Super mit normalen Zeichen.

dein script ist schlecht geschrieben. eine Menge unnötiger sed Schritte. Zeigen Sie die input-Datei, die Sie verarbeiten, und zeigen Sie die Ausgabe Ihrer gewünschten.

InformationsquelleAutor vilhalmer | 2010-02-13

Schreibe einen Kommentar