我试图将小写字符转换为大写。我遇到了各种不同的选择,比如stackoverflow问题中的一个列表。但是,我看到这些只是印刷品。我想把它保存到另一个变量中,稍后再使用。有人能告诉我如何做到这一点吗?
您的输入是$a。新变量是$b。(借用@ghostdog74)
使用tr:
b=$( tr '[A-Z]' '[a-z]' <<< $a)
如果使用tcsh,则使用echo而不是<<
set b=`echo"$a" | tr '[A-Z]' '[a-z]'`
您应该将这些作为单独的答案发布:)
我开玩笑说:
是给TCSH的吗?请考虑下面您提到的给出错误。
#! /bin/tcsh set a ="Helo World!" echo $a '
shell在第4行给出错误:"非法变量名"。
嘿,阿比纳夫。我已经修复了tcsh版本。我很抱歉迟到了,不太熟悉tcsh。玩得开心;
是的,不鼓励有多个单独的答案(尤其是1行)。最好把它们都放在一个答案里
使用bash4.0:
b=${a,,}
喜欢你用三种神圣的语言来表达这一点。
我知道这是一篇老掉牙的文章,但我为另一个网站做了这个回答,所以我想我会把它贴在这里:
下面是程序员的答案……
上>下:使用Python:
b=`echo"print '$a'.lower()" | python`
或露比:
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,,}
或者点头,如果你有:
b=`echo"console.log('$a'.toLowerCase());" | node`
你也可以使用dd(但我不会!):
b=`echo"$a" | dd conv=lcase 2> /dev/null`
下>上:
使用Python:
b=`echo"print '$a'.upeer()" | python`
或露比:
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^^}
或者点头,如果你有:
b=`echo"console.log('$a'.toUpperCase());" | node`
你也可以使用dd(但我不会!):
b=`echo"$a" | dd conv=ucase 2> /dev/null`
另外,当你说"shell"时,我假设你的意思是bash,但是如果你能使用zsh,那么就很容易
b=$a:l
小写和
b=$a:u
对于大写字母。
使用perl:
b=$( perl -e 'print lc <>;' <<< $a )
使用awk:
b=$( awk '{print tolower($0)}' <<< $a )
前面所有的答案都是正确的,我只是在添加这个,因为如果您只是转换文本,那么不需要声明变量等。
echo changethistoupper | tr [a-z] [A-Z]
echo CHANGETHISTOLOWER | tr [A-Z] [a-z]