关于shell:字符大小写转换(大写到小写,反之亦然)

character case conversion Uppercase to Lower and vice versa

我试图将小写字符转换为大写。我遇到了各种不同的选择,比如stackoverflow问题中的一个列表。但是,我看到这些只是印刷品。我想把它保存到另一个变量中,稍后再使用。有人能告诉我如何做到这一点吗?


您的输入是$a。新变量是$b。(借用@ghostdog74)

使用tr

1
b=$( tr '[A-Z]' '[a-z]' <<< $a)

如果使用tcsh,则使用echo而不是<<<

1
set b=`echo"$a" | tr '[A-Z]' '[a-z]'`


使用bash4.0:

1
b=${a,,}


我知道这是一篇老掉牙的文章,但我为另一个网站做了这个回答,所以我想我会把它贴在这里:

下面是程序员的答案……

上>下:使用Python:

1
b=`echo"print '$a'.lower()" | python`

或露比:

1
b=`echo"print '$a'.downcase" | ruby`

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

1
b=`perl -e"print lc('$a');"`

或PHP:

1
b=`php -r"print strtolower('$a');"`

或AWK:

1
b=`echo"$a" | awk '{ print tolower($1) }'`

或SED:

1
b=`echo"$a" | sed 's/./\L&/g'`

或BASH 4:

1
b=${a,,}

或者点头,如果你有:

1
b=`echo"console.log('$a'.toLowerCase());" | node`

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

1
b=`echo"$a" | dd  conv=lcase 2> /dev/null`

下>上:

使用Python:

1
b=`echo"print '$a'.upeer()" | python`

或露比:

1
b=`echo"print '$a'.upcase" | ruby`

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

1
b=`perl -e"print uc('$a');"`

或PHP:

1
b=`php -r"print strtoupper('$a');"`

或AWK:

1
b=`echo"$a" | awk '{ print toupper($1) }'`

或SED:

1
b=`echo"$a" | sed 's/./\U&/g'`

或BASH 4:

1
b=${a^^}

或者点头,如果你有:

1
b=`echo"console.log('$a'.toUpperCase());" | node`

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

1
b=`echo"$a" | dd  conv=ucase 2> /dev/null`

另外,当你说"shell"时,我假设你的意思是bash,但是如果你能使用zsh,那么就很容易

1
b=$a:l

小写和

1
b=$a:u

对于大写字母。


使用perl

1
b=$( perl -e 'print lc <>;' <<< $a )

使用awk

1
b=$( awk '{print tolower($0)}' <<< $a )

前面所有的答案都是正确的,我只是在添加这个,因为如果您只是转换文本,那么不需要声明变量等。

1
2
echo changethistoupper | tr [a-z] [A-Z]
echo CHANGETHISTOLOWER | tr [A-Z] [a-z]

enter image description here