我如何更改字符大小写(从下到上,反之亦然)?同时

我如何更改字符大小写(从下到上,反之亦然)?同时

输入

   > a='Vikas'
   > echo $a
    Vikas

我需要的输出是

echo $a | <some command>

vIKAS

答案1

$ echo Vikas | LC_ALL=C tr a-zA-Z A-Za-z
vIKAS

该实用程序tr翻译字符;它需要两个代表字符集的参数;然后,它将标准输入复制到标准输出,并将第一组中找到的每个字符替换为第二组中的相应字符。在此应用程序中,它将小写字母替换为大写字母,反之亦然。请参阅tr(1) 的手册页了解详细信息以及可以执行的其他处理tr

答案2

您可以使用带有 [:upper:] 和 [:lower:] 选项的 tr 命令,如下所示:

echo "aBcDeF" |tr '[:upper:][:lower:]' '[:lower:][:upper:]'
AbCdEf

您也可以使用 sed 命令(代表“流编辑器”),如下所示:

echo "abcd ABCD" |sed 'y/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/'

sed 具有更大的灵活性,这意味着您可以定义任何字符映射。例如,您可以使用以下命令将数字转换为黑客字母:

echo "52065218802365" |sed 'y/0123456789/OIZEhSGLBP/'
SZOGSZIBBOZEGS

(字符映射参考)

相关内容