すべてのテキストを大文字から小文字に、またはその逆に変換しますか?

すべてのテキストを大文字から小文字に、またはその逆に変換しますか?

私の質問は、すべてのテキストを大文字から小文字に、またはその逆に変換する方法です。つまり、すべての文字の大文字と小文字を変更します。どういうわけか代替によって行われるべきですsed

ベストアンサー1

簡単なアプローチは次のとおりですsed

$ echo qWeRtY | sed -e 'y/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/'
QwErTy

または、sed小文字の<->大文字変換が存在するロケールのすべての文字を処理するGNUのより短い方法を使用します。

$ echo qWeRtY | sed -E 's/([[:lower:]])|([[:upper:]])/\U\1\L\2/g'
QwErTy

次のような他のツールが利用可能な場合:

perl(ASCII文字のみ):

$ echo qWeRtY | perl -pe 'y/[a-z][A-Z]/[A-Z][a-z]/'
QwErTy

perl(より一般的):

$ echo 'αΒγ' | perl -Mopen=locale -pe 's/(\p{Ll})|(\p{Lu})/uc($1).lc($2)/ge'
ΑβΓ

おすすめ記事