1. ホーム
  2. string

[解決済み] シェルスクリプトでの大文字小文字を区別しない文字列の比較

2022-04-21 16:39:17

質問

== 演算子は、シェルスクリプトで2つの文字列を比較するために使用されます。しかし、私は大文字小文字を無視して2つの文字列を比較したいのですが、どのようにすればよいのでしょうか?何か標準的なコマンドはあるのでしょうか?

どのように解決するのですか?

bashがあれば

str1="MATCH"
str2="match"
shopt -s nocasematch
case "$str1" in
 $str2 ) echo "match";;
 *) echo "no match";;
esac

でなければ、使用しているシェルを教えてください。

awk を使用した代替案

str1="MATCH"
str2="match"
awk -vs1="$str1" -vs2="$str2" 'BEGIN {
  if ( tolower(s1) == tolower(s2) ){
    print "match"
  }
}'