二重引用符"
を削除するコマンド出力があります。
正規表現:
strings -a libAddressDoctor5.so |\
grep EngineVersion |
awk '{if(NR==2)print}' |
awk '{print$2}'
出力:
EngineVersion="5.2.5.624"
awk
またはsed
で不要な文字を削除する方法を知りたいのですが。
Sedの置換を使用:sed 's/"//g'
s/X/Y/
はXをYに置き換えます。
g
は、最初のオカレンスだけでなく、すべてのオカレンスを置き換えることを意味します。
Awkを使用するだけでできます(パイプの一部も短縮しました):
strings -a libAddressDoctor5.so | awk '/EngineVersion/ { if(NR==2) { gsub("\"",""); print $2 } }'
正確な入力がわからないため、確認できませんが、次のように動作します。
echo "Blah EngineVersion=\"123\"" | awk '/EngineVersion/ { gsub("\"",""); print $2 }'
この質問 を参照して、単一引用符を削除してください。
tr
は、特に文字列から異なる文字を削除する場合、sed
やawk
よりも文字を削除する方が簡潔です。
二重引用符の削除:
echo '"Hi"' | tr -d \"
# Produces Hi without quotes
さまざまな種類のブラケットの削除:
echo '[{Hi}]' | tr -d {}[]
# Produces Hi without brackets
-d
は「削除」の略です。