Použijte substituci sed:sed 's/"//g'
s/X/Y/
nahradí X Y.
g
znamená, že by měly být nahrazeny všechny výskyty, nejen první.
Pomocí just awk byste mohli udělat (také jsem zkrátil některé vaše potrubí):
strings -a libAddressDoctor5.so | awk '/EngineVersion/ { if(NR==2) { gsub("\"",""); print $2 } }'
Nemohu to pro vás ověřit, protože neznám váš přesný vstup, ale funguje to takto:
echo "Blah EngineVersion=\"123\"" | awk '/EngineVersion/ { gsub("\"",""); print $2 }'
Viz také tato otázka o odstraňování jednoduchých uvozovek.
tr
může být pro odstranění znaků stručnější než sed
nebo awk
, zvláště když chcete z řetězce odstranit více různých znaků.
Odstranění dvojitých uvozovek:
echo '"Hi"' | tr -d \"
# Prints Hi without quotes
Odstranění různých druhů závorek:
echo '[{Hi}]' | tr -d {}[]
# Prints Hi without brackets
-d
znamená "smazat".
Změřte provoz z protokolu přístupu Apache
Zkontrolujte, zda jsou ve skriptu bash uvedeny alespoň dva argumenty