Bash/Shell自建助手函数:ucase、lcase:借助perl一键转换字符串字母为大小或小写

概述

ucase => 转换字母为大写
lcase => 转换字母为小写
直接在终端中调用ucaselcase这两个函数即可,管道中有数据传入则读取管道中的数据,管道无数据传入则读取剪贴板中的文本(此处的读取剪贴板操作代码仅适配Windows系统下的Cygwin环境,其他环境未做适配,若要迁移到其他系统环境,需做额外修改)。

将函数代码作为个人终端配置文件的一部分即可在开发终端的快捷调用

#eg:
vim ~/.bash_profile
source /opt/common/bash_functions.sh

函数代码

clip1() {
	# 获取剪贴板内容并输出
	cat /dev/clipboard
	#getclip -u   #cygutils有getclip命令可以直接获取剪贴板内容,对应的还有putclip存放内容至剪贴板~
}
ucase() {
	#借助Perl转换所有字符串中的字母为大写
	if [ -t 0 ];then
		#echo "无管道输入"
		clip1|perl -lpe 's/^.*$/\U$&/'
	else
		#echo "有管道输入"
		perl -lpe 's/^.*$/\U$&/'
	fi
}

lcase() {
	#借助Perl转换所有字符串中的字母为小写
	if [ -t 0 ];then
		clip1|perl -lpe 's/^.*$/\L$&/'
	else
		perl -lpe 's/^.*$/\L$&/'
	fi
	return
}

使用方法

#1、从剪贴板获取内容并转换字母为大写
ucase 
#2、从剪贴板获取内容并转换字母为小写  
lcase   

#3、转换管道传入的内容为大写
echo -e "AbC123\ndeFgh"|ucase   
#4、转换管道传入的内容为小写 
echo -e "AbC123\ndeFgh"|lcase     

使用效果

posted @ 2023-01-25 13:37  晴云孤魂  阅读(77)  评论(0编辑  收藏  举报