Skript, das unerwünschte Zeichen aus Variablen entfernt

Skript, das unerwünschte Zeichen aus Variablen entfernt

Ich habe ein Skript, das eine Variable setzt. Normalerweise ist es eine URL, die aus einer HTML-Datei kopiert wurde, und dann wird diese Variable verwendet.

Ich nehme den kopierten Text/Zwischenablageinhalt xclip -outund lege ihn als Variable fest – sagen wir $CLIP. Die kopierte URL kann jedoch manchmal unerwünschte Zeichen enthalten, wie ",',`usw. Ich möchte, dass das Skript alle diese durch Leerzeichen ersetzt.

Antwort1

die kopierte URL kann manchmal unerwünschte Zeichen enthalten, wie ",',` usw. Ich möchte, dass das Skript alle diese durch Leerzeichen ersetzt.

Sie könnten sedhierfür verwenden.

Wenn Ihre $urlVariable ungefähr so ​​aussieht:

echo $url 
http://1f,oo"2b`a'r.com

Dadurch sedwerden alle „unerwünschten“ Zeichen durch Leerzeichen ersetzt:

echo $url | sed 's/[^a-zA-Z0-9:/\.]/ /g'
http://1f oo 2b a r.com

Antwort2

viele Möglichkeiten, dies zu tun

Verwenden Sie die richtigen Hex-Codes für Ihren eigenen Fall

clean_url="$(echo ${dirty_url} | sed 's/[\x20-\x2D]/ /g')"

dann würde ich es durchgehen, um zu prüfen, ob Sie mehrere Leerzeichen haben und diese mit etwas wie

clean_url=$(sed 's/  */ /g' <<< ${clean_url})

Antwort3

Du könntest benutzenBash-Parametererweiterungnach der Aktivierungerweitertes Globbing

CLIP=$'http://abc\".x\'y`.com'
printf '%s\n' "$CLIP"
http://abc".x'y`.com
chars_to_remove=("'" '"' '`') #set characters to remove into an array
chars_to_remove=$(IFS='|'; printf '+(%s)' "${chars_to_remove[*]}") #assemble in extglob format
printf '%s\n' $chars_to_remove
+('|"|`)
printf '%s\n' "${CLIP//${chars_to_remove}/ }"
http://abc .x y .com

Antwort4

Vereinfachte Bash-Parametererweiterung:

root@debian:# CLIP=$'http://abc\".x\'y`.com';cleanclip=$(echo ${CLIP//[\'\`\"]});echo $cleanclip
#Output:
http://abc.xy.com

PS: Das zu entfernende Muster befindet sich innerhalb von [] und Zeichen werden maskiert.

SehenBash-Handbuch, Abs. 3.5.3um${Parameter/Muster/Zeichenfolge}

verwandte Informationen