Shell 将大写字母转换为小写字母,反之亦然

Shell 将大写字母转换为小写字母,反之亦然,shell,unix,Shell,Unix,我试图将小写字符转换为大写。我遇到了各种各样的选择,比如在StackOverflow的一个列表。然而,我看到的是,这些只是印刷品。我想把它保存到另一个变量中,以后可以使用。 有人能告诉我如何做到这一点吗?您的输入是$a。新变量是$b (摘自@ghostdog74) 使用tr: b=$( tr '[A-Z]' '[a-z]' <<< $a) b=$( awk '{print tolower($0)}' <<< $a ) b=${a,,} b=$( perl

我试图将小写字符转换为大写。我遇到了各种各样的选择,比如在StackOverflow的一个列表。然而,我看到的是,这些只是印刷品。我想把它保存到另一个变量中,以后可以使用。
有人能告诉我如何做到这一点吗?

您的输入是
$a
。新变量是
$b

(摘自@ghostdog74)

使用
tr

b=$( tr '[A-Z]' '[a-z]' <<< $a)
b=$( awk '{print tolower($0)}' <<< $a )
b=${a,,}
b=$( perl -e 'print lc <>;' <<< $a )

使用awk:

b=$( tr '[A-Z]' '[a-z]' <<< $a)
b=$( awk '{print tolower($0)}' <<< $a )
b=${a,,}
b=$( perl -e 'print lc <>;' <<< $a )

b=$(awk'{print tolower($0)}'使用
bash
4.0

b=$( tr '[A-Z]' '[a-z]' <<< $a)
b=$( awk '{print tolower($0)}' <<< $a )
b=${a,,}
b=$( perl -e 'print lc <>;' <<< $a )

使用
perl

b=$( tr '[A-Z]' '[a-z]' <<< $a)
b=$( awk '{print tolower($0)}' <<< $a )
b=${a,,}
b=$( perl -e 'print lc <>;' <<< $a )

b=$(perl-e'print lc;”我知道这是一篇老掉牙的帖子,但我为另一个网站做了这个回答,所以我想把它贴在这里:

下面是一个答案

上->下: 使用python:

b=`echo "print '$a'.lower()" | python`
b=`echo "print '$a'.upeer()" | python`
或红宝石:

b=`echo "print '$a'.downcase" | ruby`
b=`echo "print '$a'.upcase" | ruby`
或者Perl(可能是我最喜欢的):

或PHP:

b=`php -r "print strtolower('$a');"`
b=`php -r "print strtoupper('$a');"`
或Awk:

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

b=`echo "$a" | sed 's/./\L&/g'`
b=`echo "$a" | sed 's/./\U&/g'`
或Bash 4:

b=${a,,}
b=${a^^}
或NodeJS(如果您有):

b=`echo "console.log('$a'.toLowerCase());" | node`
b=`echo "console.log('$a'.toUpperCase());" | node`
您也可以使用
dd
(但我不会!)

下部->上部

b=$( tr '[A-Z]' '[a-z]' <<< $a)
b=$( awk '{print tolower($0)}' <<< $a )
b=${a,,}
b=$( perl -e 'print lc <>;' <<< $a )
使用python:

b=`echo "print '$a'.lower()" | python`
b=`echo "print '$a'.upeer()" | python`
或红宝石:

b=`echo "print '$a'.downcase" | ruby`
b=`echo "print '$a'.upcase" | ruby`
或者Perl(可能是我最喜欢的):

或PHP:

b=`php -r "print strtolower('$a');"`
b=`php -r "print strtoupper('$a');"`
或Awk:

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

b=`echo "$a" | sed 's/./\L&/g'`
b=`echo "$a" | sed 's/./\U&/g'`
或Bash 4:

b=${a,,}
b=${a^^}
或NodeJS(如果您有):

b=`echo "console.log('$a'.toLowerCase());" | node`
b=`echo "console.log('$a'.toUpperCase());" | node`
您也可以使用
dd
(但我不会!)

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

b=$a:l
用于小写和

b=$a:u

对于大写。

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

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

你应该把这些答案作为分开的答案:)这是针对TCSH的吗?考虑下面提到的错误。<代码> > /bin /TCSH设置A=“Helo World!”ECHA$ $'Hi'AbHiav。我已经修复了<代码> TCSH 版本。抱歉,我迟到了,不太熟悉<代码> TCSH < /代码>。玩得开心!不鼓励有多个单独的答案(尤其是一行)。最好把它们都放在一个答案中这太棒了。把
zsh
上的第一个字母大写怎么样,你有这些命令的参考资料吗@nettux@mochadwi您将使用
b=${(C)a}
。请参见zsh文档中的参数扩展部分: