sedを使用して文字列からすべての浮動小数点数を削除したい。したがって、私は使用します
sed -e 's/[ +-]?[0-9]*\.[0-9]*//g'
しかし、それは機能しません:
echo 1.2456 | sed -e 's/[ +-]?[0-9]*\.[0-9]*//g'
与える1.2456
。[ +-]?
ブロックを削除すると、正の数で機能します。
疑問符をエスケープする必要があります。
echo 1.2456 | sed -e 's/[ +-]\?[0-9]*\.[0-9]*//g'
記号は?
拡張正規表現文字です。拡張式を有効にするオプションをsed
指定して呼び出す必要があります。-r
脱出?
またはsed -r
その後、それは動作するはずです。
このバージョンはより比較可能です。?すべてのシステムで機能するわけではなく、+は1回以上繰り返すことを意味します。
echo 1.2456 | sed -e 's/[ \+\-]*[0-9]*\.[0-9]*//g'