Bash/Shell自建助手函数:ucase、lcase:借助perl一键转换字符串字母为大小或小写
概述
ucase
=> 转换字母为大写
lcase
=> 转换字母为小写
直接在终端中调用ucase
、lcase
这两个函数即可,管道中有数据传入则读取管道中的数据,管道无数据传入则读取剪贴板中的文本(此处的读取剪贴板操作代码仅适配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
使用效果
本文来自博客园,作者:晴云孤魂,转载请注明原文链接:https://www.cnblogs.com/cnhack/p/17066880.html