字符大小写转换大写到低位,反之亦然

Abh*_*nav 4 unix shell

我试图将小写字符转换为大写.我遇到了各种其他选择,例如StackOverflow 问题中的一个列表.但是,我看到这些只是打印出来的.我想将它保存到另一个我以后可以使用的变量.任何人都可以告诉我如何实现这一目标?

net*_*tux 8

我知道这是一篇陈旧的帖子,但我为另一个网站做了这个答案,所以我想我会在这里发布:

程序员的回答来了....

上 -> 下:使用 python:

b=`echo "print '$a'.lower()" | python`
Run Code Online (Sandbox Code Playgroud)

或者红宝石:

b=`echo "print '$a'.downcase" | ruby`
Run Code Online (Sandbox Code Playgroud)

或 Perl(可能是我最喜欢的):

b=`perl -e "print lc('$a');"`
Run Code Online (Sandbox Code Playgroud)

或 PHP:

b=`php -r "print strtolower('$a');"`
Run Code Online (Sandbox Code Playgroud)

或者 awk:

b=`echo "$a" | awk '{ print tolower($1) }'`
Run Code Online (Sandbox Code Playgroud)

或 Sed:

b=`echo "$a" | sed 's/./\L&/g'`
Run Code Online (Sandbox Code Playgroud)

或 Bash 4:

b=${a,,}
Run Code Online (Sandbox Code Playgroud)

或者 NodeJS,如果你有的话:

b=`echo "console.log('$a'.toLowerCase());" | node`
Run Code Online (Sandbox Code Playgroud)

你也可以使用dd(但我不会!):

b=`echo "$a" | dd  conv=lcase 2> /dev/null`
Run Code Online (Sandbox Code Playgroud)

下 -> 上

使用蟒蛇:

b=`echo "print '$a'.upeer()" | python`
Run Code Online (Sandbox Code Playgroud)

或者红宝石:

b=`echo "print '$a'.upcase" | ruby`
Run Code Online (Sandbox Code Playgroud)

或 Perl(可能是我最喜欢的):

b=`perl -e "print uc('$a');"`
Run Code Online (Sandbox Code Playgroud)

或 PHP:

b=`php -r "print strtoupper('$a');"`
Run Code Online (Sandbox Code Playgroud)

或者 awk:

b=`echo "$a" | awk '{ print toupper($1) }'`
Run Code Online (Sandbox Code Playgroud)

或 Sed:

b=`echo "$a" | sed 's/./\U&/g'`
Run Code Online (Sandbox Code Playgroud)

或 Bash 4:

b=${a^^}
Run Code Online (Sandbox Code Playgroud)

或者 NodeJS,如果你有的话:

b=`echo "console.log('$a'.toUpperCase());" | node`
Run Code Online (Sandbox Code Playgroud)

你也可以使用dd(但我不会!):

b=`echo "$a" | dd  conv=ucase 2> /dev/null`
Run Code Online (Sandbox Code Playgroud)

此外,当您说“shell”时,我假设您的意思是bash但如果您可以使用zsh它就像

b=$a:l
Run Code Online (Sandbox Code Playgroud)

对于小写和

b=$a:u
Run Code Online (Sandbox Code Playgroud)

对于大写。


oli*_*bre 6

你的意见是$a.新变量是$b.
(从这里借来的@ ghostdog74)

使用tr:

b=$( tr '[A-Z]' '[a-z]' <<< $a)
Run Code Online (Sandbox Code Playgroud)

如果你使用tcsh,那么使用echo而不是<<<:

set b=`echo "$a" | tr '[A-Z]' '[a-z]'`
Run Code Online (Sandbox Code Playgroud)