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

时间:2012-01-25 10:12:02

标签: shell unix

我试图将小写字符转换为大写字母。我遇到了各种替代方案,例如StackOverflow question上的一个列表。但是,我看到这些只是打印出来的。我想将它保存到另一个我以后可以使用的变量。 任何人都可以告诉我如何实现这一目标吗?

6 个答案:

答案 0 :(得分:6)

您的输入为$a。新变量为$b (借用@ ghostdog74撰写的here

使用 tr

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

如果您使用tcsh,则使用echo代替<<<

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

答案 1 :(得分:3)

使用 bash 4.0

b=${a,,}

答案 2 :(得分:2)

使用 awk

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

答案 3 :(得分:2)

使用 perl

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

答案 4 :(得分:2)

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

程序员回答......

UPPER - &gt;下: 使用python:

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

或Ruby:

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

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

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

或PHP:

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

或者Awk:

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

或Sed:

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

或Bash 4:

b=${a,,}

如果你有NodeJS:

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

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

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

更低 - &gt; UPPER

使用python:

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

或Ruby:

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

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

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

或PHP:

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

或者Awk:

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

或Sed:

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

或Bash 4:

b=${a^^}

如果你有NodeJS:

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

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

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

另外当你说“贝壳”时我假设您的意思是bash,但如果您可以使用zsh,那就像

一样简单
b=$a:l

小写和

b=$a:u

表示大写。

答案 5 :(得分:0)

之前的所有答案都是正确的,我只是添加这个,因为如果您只是转换文本,则无需声明变量等。

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

enter image description here