在Linux命令行中如何转换大小写

这篇文章将为大家详细讲解有关在 Linux命令行中如何转换大小写,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

公司主营业务:网站设计制作、做网站、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联公司推出舞钢免费做网站回馈大家。

使用 tr

tr(translate)命令是在命令行或脚本中最容易使用的命令之一。如果你要确定要一串大写字符串,你只需将它传给 tr,如下所示:

$ echo Hello There | tr [:lower:] [:upper:] HELLO THERE

下面是一个在脚本中使用这个命令的例子,当你要确保添加到文件中的所有文本都使用大写形式以保持一致性时(LCTT 译注:这里输入部门名称作为示例):

#!/bin/bash  echo -n "Enter department name: " read dept echo $dept | tr [:lower:] [:upper:] >> depts

将顺序切换为 [:upper:] [:lower:] 会产生相反的效果,将所有大写的部门名称都转换为小写:

echo $dept | tr [:upper:] [:lower:] >> depts

同样,你可以使用 sed 命令的 A-Z 和 a-z 字符串完成相同的操作:

echo $dept | tr a-z A-Z >> depts

毫无疑问,反转 a-z 和 A-Z 字符串的顺序将产生相反的效果,将文本全部变为小写。

使用 awk

awk 命令可让你使用它的 toupper 和 tolower 选项执行相同的操作。上例脚本中的命令可以用这种方式代替:

echo $dept | awk '{print toupper($0)}' >> depts

相反操作(切换为小写)如下所示:

echo $dept | awk '{print tolower($0)}' >> depts

使用 sed

sed(stream editor)命令也可用于切换大小写。它与上面显示的两个命令中的第一个具有相同的效果。

echo $dept | sed 's/[a-z]/\U&/g' >> depts

从大写字母切换到小写字母只需将行尾附近的 U 替换为 L。

echo $dept | sed 's/[A-Z]/\L&/g' >> depts

操作文件中的文本

awk 和 sed 都能更改整个文件的文本大小写。因此,你发现你的老板需要所有部门名称的小写么?没问题。只需带上文件名运行以下命令:

$ awk '{print tolower($0)}' depts finance billing bookkeeping

如果要覆盖 depts 文件,而不仅仅是以小写形式显示,则需要执行以下操作:

$ awk '{print tolower($0)}' depts > depts- $ mv depts- depts

但是,使用 sed 进行更改,你可以避免最后一步,因为 sed 可以“原地”编辑文件,如下所示,文件完整,但文本全部小写:

$ sed 's/[A-Z]/\L&/g' depts

仅将首字母转换为大写

要仅将字符串中单词的首字母转换为大写,那么可以执行以下操作:

$ echo design \& engineering| sed -e "s/\b\(.\)/\\u\1/g" Design & Engineering

该命令将确保首字母大写,但不会更改其余字母。

确保只有首字母大写

当要更改文本以使只有首字母大写时,这更具挑战性。假设你正在处理一个工作人员姓名列表,并且希望以正常的“名 姓”方式对其格式化。

1. 使用 sed

你可以使用更复杂的 sed 命令来确保以下结果:

$ echo design \& ENGINEERING | sed 's/\b\([[:alpha:]]\)\([[:alpha:]]*\)\b/\\u\1\L\2/g' Design & Engineering

2. 使用 Python

如果你已安装 Python,你可以运行这样的命令,它还可以设置文本格式,以便每个单词只有首字母大写,并且它可能比上面显示的 sed  命令更易于解析:

$ echo -n "design & engineering" | python3 -c "import sys; print(sys.stdin.read().title())" Design & Engineering

关于“在 Linux命令行中如何转换大小写”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。


分享名称:在Linux命令行中如何转换大小写
转载源于:http://pwwzsj.com/article/pijooj.html