

在Linux行内直接进行大小写转换
source link: http://os.51cto.com/art/202010/628490.htm
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

在编辑文本时大小写常常是需要注意的地方,大小写的转换是很枯燥而繁琐的工作,所幸,Linux 提供了很多能让这份工作变得容易的命令。接下来让我们看看都有哪些完成大小写转换的命令。
tr 命令
tr (translate) 是能运用在命令行或者脚本上的最简单的大小写转换命令之一。例如如果你想要让一串字符串全部是大写字母,你可以用如下所示的命令完成这个内容:
$ echo hello alvin | tr [:lower:] [:upper:] HELLO ALVIN
以下为该命令应用在脚本上的例子,写入文件depts的内容全会是大写的格式:
$ echo "Enter department name: " | tr [:lower:] [:upper:] >> depts
上面命令的顺序换为 [:upper:] [:lower:] 将会得到相反的结果,所有输入的字母都将变为小写字母:
$ echo "Enter department name: " | tr [:upper:] [:lower:] >> depts
你可以用 A-Z a-z 代替 [:upper:] [:lower:] 来达到相同的效果:
$ echo "Enter department name: " | tr a-z A-Z >> depts
awk 命令
awk 命令用 toupper 和 tolower 这两个选项完成大小写转换。上文所述的对脚本进行的大小写转换可以用这个命令以如下的方式完成:
$ echo "Enter department name: " | awk '{print toupper($0)}' >> depts
以上是转换成大写字母,下面为转换为小写字母的方法:
$ echo "Enter department name: " | awk '{print tolower($0)}' >> depts
sed 命令
sed (stream editor) 命令同样能够很好完成大小写转换的工作,下面的命令也能够达到前面两个命令的效果:
$ echo "Enter department name: " | sed 's/[a-z]/\U&/g' >> depts
要想完成相反的转换,只需把上面那条命令中的 U 换成 L 、[a-z] 换成 [A-Z] 即可:
$ echo "Enter department name: " | sed 's/[A-Z]/\L&/g' >> depts
修改文件里文本内容的大小写格式
awk 和 sed 命令都可以完成对整个文档内容的大小写转换工作,所以如果你需要把整个文档内容转换成小写,你可以用如下命令以小写的形式输出某文件的内容至屏幕上:
$ awk '{print tolower($0)}' depts
其结果如下:
enter department name: finance billing bookkeeping
注意此结果只是将打印在屏幕的内容转换为了小写,本身文档内的大写字母并无变动,使用 cat depts 命令查看便可知道。如果你想要确实地修改文档内容的大小写,你可以用如下命令完成:
$ awk '{print tolower($0)}' depts > depts- $ mv depts- depts
sed 命令可以完成和 awk 相同的功能,只是用法上略有不同,其使用方法如下:
$ sed 's/[A-Z]/\L&/g' depts
只让首字母大写
只让一串字符串中各个单词的首字母大写,可以用如下的命令完成:
$ echo design \& engineering| sed -e "s/\b\(.\)/\u\1/g" Design & Engineering
上面这一条命令可以只让首字母大写而其他字母不变。
确保只有首字母大写
当你需要对一大批文本进行这个操作的时候,比如要以正确的格式显示一大批人的姓名时,需要做的事情会变得稍微难一些。这里提供两种方法完成这个任务:
用 sed 命令完成
为了确保结果正确,需要更加复杂的 sed 命令格式:
$ echo design \& ENGINEERING | sed 's/\b\([[:alpha:]]\)\([[:alpha:]]*\)\b/\u\1\L\2/g' Design & Engineering
用 python 代码完成
如果你的 Linux 上安装了 python ,你可以用如下的命令完成对文本的首字母大写格式化,python 代码比上文的 sed 命令的正则式要容易理解多了:
$ echo -n "design & engineering" | python3 -c "import sys; print(sys.stdin.read().title())" Design & Engineering
Linux 里面有许多用于大小写转换的命令,哪一个用着更好取决于你是处理一串字符还是整个文件。希望本文介绍的各种命令能对你有所帮助,如果你对这些命令有什么疑问,欢迎留言讨论!
本文授权转载自公众号「良许Linux」。良许,世界500强外企Linux开发工程师,公众号里分享大量Linux干货,欢迎关注!
Recommend
-
161
前言 总括: 本文通过实例讲解CSS中最大的难点之一,行内元素的布局,主要是挖掘line-height和vertical-align两个属性在布局方面的使用。 原文博客地址:深入理解行内元素的布局 知乎专栏&&简书专题:前端进击者(知乎)&a
-
91
VAC万融链,Value added chain,是在开发比特币和以太坊之外的第三种区块链生态系统,并致力于拓展区块链技术的 应用边界和技术边界 ,使普通互联网用户能感受到区块链技术的价值。万融链(VAC)是一个公有链,他是区块链技术的有一个新突破,在区块链技术的应用上...
-
67
这几天在海关做项目,需要内外网两个环境,内网IP访问需要外网进行转发内网:172.16.102.8外网:10.99.115.211#iptables-tnat-APREROUTING-ptcp-ieth0-d10.99.115.211--dport1521-jDNAT--to172.16.102.8:1521#iptablessave
-
25
今天,我们要讲的是块级元素、行内元素、替换元素、非替换元素的区分和特点。 元素的分类 1 替换和不可替换元素 从元素本身的特点来讲,可以分为替换和不可替换元素。 1.1 替换元素
-
34
有很多方法可以在 Linux 命令行中将文本从小写更改为大写,反之亦然。实际上,有一组这样的命令可以选择。这篇文章检验了一些优秀的命令来完成这项工作,以及你该如何让它们正常工作。
-
9
Java将英文字符串转换为驼峰式大小写的方法 | baeldung驼峰式大小写有两种类型:驼峰小写,第一个单词的第一个字符是小写:thisIsLowerCamelCase 驼峰大写,也称为标题大写,其中第一个单词的第一个字符是大写的:ThisIsLowerCamelCase
-
8
通过位运算转换大小写 发表于 2018-11-14...
-
7
【笔记】IDEA大小写转换 2022-11-11 2
-
9
【笔记】Python3英文大小写转换 2023-04-25 ...
-
6
程序员福音-英文大小写转换,驼峰下划线空格小数点互转 wushuang · 大约6...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK