Usa la sostituzione di sed:sed 's/"//g'
s/X/Y/
sostituisce X con Y.
g
significa che tutte le occorrenze devono essere sostituite, non solo la prima.
Usando solo awk potresti fare (ho anche accorciato alcune delle tue piping):
strings -a libAddressDoctor5.so | awk '/EngineVersion/ { if(NR==2) { gsub("\"",""); print $2 } }'
Non posso verificarlo per te perché non conosco il tuo input esatto, ma funziona quanto segue:
echo "Blah EngineVersion=\"123\"" | awk '/EngineVersion/ { gsub("\"",""); print $2 }'
Vedi anche questa domanda sulla rimozione delle virgolette singole.
tr
può essere più conciso per la rimozione dei caratteri rispetto a sed
o awk
, soprattutto quando desideri rimuovere più caratteri diversi da una stringa.
Rimozione delle doppie virgolette:
echo '"Hi"' | tr -d \"
# Prints Hi without quotes
Rimozione di diversi tipi di parentesi:
echo '[{Hi}]' | tr -d {}[]
# Prints Hi without brackets
-d
sta per "cancella".