スペースを無視して文字列比較を実行するには?

スペースを無視して文字列比較を実行するには?

2つの文字列を比較しますが、スペースを無視する方法は?私は次のことをしています:

if [ "$a" == "$b" ]; then
   echo ok
fi

ところで似合わないようです。 「a」と「b」が何であるかを印刷しましたが、どちらも同じです。しかし、彼らは別の改行を使用しているようです。

ベストアンサー1

技術的にすべてのスペースを無視するには、次の2つの文字列を渡すことができますtr

[ "$(echo "$a" | tr -d '[:space:]')" = "$(echo "$b" | tr -d '[:space:]')" ]

ただし、これを行うと、比較する前にすべてのスペースが削除されるため、たとえば、および"a b"同一"ab"性をテストします。これが望ましいかどうかはわかりません。tr必要な操作を実行するようにフィルタを調整できます。たとえば、すべてのスタイルの改行のみを削除するには、次のようにしますtr -d '\n\r'

おすすめ記事