`

Bash字符串处理(与Java对照) - 27.转换大小写

阅读更多

Bash字符串处理(与Java对照) - 27.转换大小写

In Java

 String     toLowerCase()
          使用默认语言环境的规则将此 String 中的所有字符都转换为小写。

 

 String     toUpperCase()
          使用默认语言环境的规则将此 String 中的所有字符都转换为大写。

 

In Bash

使用tr命令来转换大小写

大写 => 小写

echo "$STR" | tr A-Z a-z

echo "$STR" | tr 'A-Z' 'a-z'

echo "$STR" | tr "A-Z" "a-z"

echo "$STR" | tr [:upper:] [:lower:]

echo "$STR" | tr "[A-Z]" "[a-z]"

 

[root@jfht ~]# STR=Hello

[root@jfht ~]# echo "$STR" | tr [:upper:] [:lower:]
hello
[root@jfht ~]# echo "$STR" | tr "[A-Z]" "[a-z]"
hello

 

错误:echo "$STR" | tr [A-Z] [a-z]

必须加上双引号或单引号

如果没有加上引号且当前目录有单个字符的文件或目录

就会出现意想不到的结果

[root@jfht ~]# touch E
[root@jfht ~]# echo "$STR" | tr [A-Z] [a-z]
Hello

 

小写 => 大写

echo "$STR" | tr a-z A-Z

echo "$STR" | tr 'a-z' 'A-Z'

echo "$STR" | tr "a-z" "A-Z"

echo "$STR" | tr [:lower:] [:upper:]

echo "$STR" | tr "[a-z]" "[A-Z]"

 

[root@jfht ~]# STR=Hello
[root@jfht ~]# echo "$STR" | tr [:lower:] [:upper:]
HELLO

[root@jfht ~]# echo "$STR" | tr "[a-z]" "[A-Z]"
HELLO

 

使用sed命令来转换大小写

大写 => 小写

错误:echo "$STR" | sed "y/[A-Z]/[a-z]/"

正确:echo "$STR" | sed y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/

 

小写 => 大写

错误:echo "$STR" | sed "y/[a-z]/[A-Z]/"

正确:echo "$STR" | sed y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/

 

[root@jfht ~]# STR=Hello

[root@jfht ~]# echo "$STR" | sed y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
hello

[root@jfht ~]# echo "$STR" | sed y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/   
HELLO

 

使用awk命令来转换大小写

大写 => 小写

echo "$STR" | awk '{print tolower($0)}'

 

小写 => 大写

echo "$STR" | awk '{print toupper($0)}'

 

[root@jfht ctmw]# STR=Hello

[root@jfht ctmw]# echo "$STR" | awk '{print tolower($0)}'
hello
[root@jfht ctmw]# echo "$STR" | awk '{print toupper($0)}'
HELLO
[root@jfht ctmw]#

 

使用perl命令转换大小写

大写 => 小写

echo "$STR" | perl -e 'print lc <>;'

 

小写 => 大写

echo "$STR" | perl -e 'print uc <>;'

 

[root@jfht ctmw]# STR=Hello

[root@jfht ctmw]# echo "$STR" | perl -e 'print lc <>;'
hello
[root@jfht ctmw]# echo "$STR" | perl -e 'print uc <>;'
HELLO
[root@jfht ctmw]#

 

 

本文链接:http://codingstandards.iteye.com/blog/1164913   (转载请注明出处)

返回目录:Java程序员的Bash实用指南系列之字符串处理(目录) 

上节内容:Bash字符串处理(与Java对照) - 26.根据位置和长度截取子串

下节内容:Bash字符串处理(与Java对照) - 28.去除前后空白

 

 

7
5
分享到:
评论

相关推荐

    mysql-connector-java-5.1.40.tar.gz

    MySQL Connector/J是MySQL数据库与Java应用程序之间的桥梁,它是一个实现了JDBC(Java Database Connectivity)标准的MySQL驱动程序。"mysql-connector-java-5.1.40.tar.gz" 是这个驱动程序的一个特定版本,版本号为...

    bash-3.1-MSYS-1.0.11-snapshot.tar

    bash-3.1-MSYS-1.0.11-snapshot.tar.bz2 ffmpeg 安装用包!

    bash-completion-2.1-6.el7.noarch.rpm

    在centos6或rhel6 操作系统安装bash-completion-2.1-6.el7.noarch.rpm后,重启即生效

    修复bash漏洞的bash-4.4.tar.gz源码包

    #tar zxvf bash-4.4.tar.gz #cd bash-4.4 #./configure (如果centos7编译失败,请先安装#yum install gcc) #make #make install 添加环境变量 #echo‘ export PATH=/usr/local/bin:$PATH‘ &gt;&gt;/etc/profile #source...

    fmath-mathml-java.jar.rar

    通过这个工具,你可以将LaTeX公式转换为MathML,或者将MathML代码转化为LaTeX字符串,从而在不同环境下灵活运用。 三、LaTeX到MathML的转换 在LaTeX到MathML的转换过程中,`fmath-mathml-java.jar`首先解析LaTeX...

    linux bash远程执行代码漏洞的补丁

    redhat bash漏洞补丁包含文件:bash-4.1.2-15.el6_5.2.i686.rpmbash-4.1.2-15.el6_5.2.x86_64.rpmbash-3.0-27.el4.i386.rpmbash-3.0-27.el4.x86_64.rpmbash-3.2-33.el5_11.4.i386.r... redhat bash漏洞补丁 包含文件...

    .git-completion.bash

    .git-completion.bash

    openjdk-17.0.2(openjdk-17.0.2_macos-aarch64_bin.tar.gz)

    3. **文本块(Text Blocks)**:Java 13 引入的新语法特性,使得多行字符串的编写更加直观,减少了转义字符的困扰。 4. **记录类(Record Classes)**:Java 14 添加的记录类简化了创建不可变数据对象的过程,自动...

    bash-debuginfo-3.2-33.el5_11.4.x86_64

    Bash-debuginfo包是Bash的主要软件包的补充,它包含了一些特殊的符号和元数据,这些信息对于开发人员和系统管理员来说非常有用,当他们需要诊断或调试与Bash相关的错误和问题时。 具体来说,调试信息包括了源代码...

    bash补丁包.zip

    bash-debuginfo-3.0-27.el4.4.i386.rpm 2、rhel 4.x 64位 bash-3.0-27.el4.x86_64.rpm bash-debuginfo-3.0-27.el4.4.x86_64.rpm 3、centos5.x_32 bash-3.2-33.el5.1.i386.rpm bash-3.2-33.el5_11.4.i386.rpm 4、...

    bash-3.2-33.el5.1.x86_64.rpm

    修复bash远程执行漏洞,支持redhat linux 64位操作系统 CVE-2014-6271

    git-bash.exe

    git-bash.exe

    centos安装jdk1.8时出现没有/lib/ld-linux.so.2:这个文件的原因分析

    -bash: /usr/local/jdk/jdk1.8.0_181/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory 安装完后 java -version 查看版本出现: 原因是:没有那个文件或目录,找了很久发现需要...

    libaio-devel-0.3.106(i386 x86_64)

    ```bash rpm -ivh libaio-devel-0.3.106-3.2.i386.rpm ``` 而对于 x86_64 系统,则是: ```bash rpm -ivh libaio-devel-0.3.106-3.2.x86_64.rpm ``` 安装完成后,libaio-devel 提供的头文件(如 `libaio.h`)和开发...

    apache-tomcat-8.5.55.tar.gz

    Apache Tomcat是一款开源的Java Servlet容器,用于部署和运行Java Web应用程序。在Linux系统中安装`apache-tomcat-8.5.55.tar.gz`文件的过程涉及多个步骤,包括下载、解压、配置和启动服务。以下是详细的安装和配置...

    bash-4.1.2-15.el6_5.1.x86_64.rpm

    修复redhat6 bash远程执行任意代码漏洞CVE-2014-6271

    Java-JDK-11.0.8(Windows &amp;amp; Mac os) 下载

    5. **文本块(Text Blocks)**:预览特性,允许在代码中方便地插入多行字符串,减少转义字符的使用。 在下载和安装Java JDK 11.0.8之后,开发者可以使用`javac`编译Java源代码,生成字节码(`.class`文件)。通过`...

    mysql-connector-java-8.0.13.jar

    MySQL Connector/J 8.0.13 是MySQL数据库与Java应用程序之间的重要桥梁,它是Oracle官方提供的用于Java平台的MySQL驱动程序。这个jar包允许开发者在Java应用中执行SQL语句,进行数据的读取、写入和管理MySQL数据库。...

    tftp-server-0.42-3.1.i386.rpm.

    《TFTP服务器在RHEL5系统中的应用与配置详解》 TFTP(Trivial File Transfer Protocol,简单文件传输协议)是一种轻量级的文件传输协议,常用于设备初始化、固件更新、网络诊断等场景。在RHEL5(Red Hat Enterprise...

    jdk-11.0.16.1-linux-x64-bin.tar

    标题中的"jdk-11.0.16.1-linux-x64-bin.tar"是一个针对Linux操作系统的64位Java Development Kit(JDK)的压缩文件,版本为11.0.16.1。这个文件是Oracle JDK的特定版本,用于在Linux环境下开发和运行Java应用程序。 ...

Global site tag (gtag.js) - Google Analytics