bash脚本字符串处理

简介: 经常看到一些脚本中, 做一些简单的字符串处理/计算字符串长度,也动用管道+ awk/sed/cut等相对重量级工具:),其实大可不必, 因为bash本身就自带一些简单字符串处理功能, 这样至少可以减少重新fork一个进程来做字符串处理的开销, 也算为服务器减排...
经常看到一些脚本中, 做一些简单的字符串处理/计算字符串长度,也动用管道+ awk/sed/cut等相对重量级工具:),其实大可不必, 因为bash本身就自带一些简单字符串处理功能, 这样至少可以减少重新fork一个进程来做字符串处理的开销, 也算为服务器减排co2做一些贡献吧:)
# 定义几个变量用于测试目的
FILE_NAME="/usr/local/app/world.txt"
TIME_NOW="`date +"%Y%m%d%H%M%S"`"
# 1. 取字符串的子串, 比如说从TIME_NOW分别取出日期和时间
DATE_TODAY="${TIME_NOW:0:8}"    # ${var:beg_pos:sub_str_length}, beg_pos是子串的起始位置(从0开始), sub_str_length为子串长度
TIME_TODAY="${TIME_NOW:8:6}"
# 或者
TIME_TODAY="${TIME_NOW:8}"      # sub_str_length为0表示到源字符串的结尾
# 取FILE_NAME中的文件名world.txt(不包括路径), 很多童鞋会马上想到basename, 或者一些类似于正则匹配的操作
${FILE_NAME##*/}                # 相当于basename ${FILE_NAME},即删除按从左至右,匹配一直到最后一个/之间的子串
${FILE_NAME%/*}                 # 相当与dirname, 即删除按从右至左方向开始,匹配到第一个/之间的子串
${FILE_NAME#*/}                 # 从左至右, 删除第一个/及左边的子串
${FILE_NAME%%/*}                # 从右至左, 删除至最后一个/及右边的子串
# 2. 字符串替换
${FILE_NAME/world.txt/hello.txt}    # 把第一个world.txt替换成hello.txt
${FILE_NAME//a/A}                   # 把所有的a替换成A
# 3. 计算字符串长度
${#FILE_NAME}                   # 计算FILE_NAME的长度
ARRAY=(abc defg hijklmn)
${#ARRAY}                       # 计算这个数组的维数
${#ARRAY[2]}                    # 计算这个数组第三个元素的长度
目录
相关文章
|
监控 安全 Shell
防止员工泄密的措施:在Linux环境下使用Bash脚本实现日志监控
在Linux环境下,为防止员工泄密,本文提出使用Bash脚本进行日志监控。脚本会定期检查系统日志文件,搜索敏感关键词(如"password"、"confidential"、"secret"),并将匹配项记录到临时日志文件。当检测到可疑活动时,脚本通过curl自动将数据POST到公司内部网站进行分析处理,增强信息安全防护。
640 0
|
存储 Shell Linux
Linux Bash 脚本中的 IFS 是什么?
【4月更文挑战第25天】
1123 0
Linux Bash 脚本中的 IFS 是什么?
|
Shell
一个能够生成 Markdown 表格的 Bash 脚本
【8月更文挑战第20天】这是一个使用Bash脚本生成Markdown表格的示例。脚本首先设置表头与内容数据,然后输出Markdown格式的表格。用户可以根据需要自定义表格内容。使用时,只需将脚本保存为文件(如 `generate_table.sh`),赋予执行权限,并运行它,即可在终端看到生成的Markdown表格。
463 2
|
Devops 关系型数据库 大数据
1000个开源免费的bash脚本合集
【10月更文挑战第4天】
762 0
|
存储 弹性计算 运维
用bash脚本创建目录
【4月更文挑战第29天】
369 3
|
Unix Shell Linux
在Linux中,什么是Bash脚本,并且如何使用它。
在Linux中,什么是Bash脚本,并且如何使用它。
|
Shell 开发者
深入理解Bash脚本中的函数
【8月更文挑战第20天】
616 0
|
存储 Shell 数据处理
深入探讨Bash脚本中的数组
【8月更文挑战第20天】
444 0
|
存储 Shell
Bash 脚本中的 `hash` 命令
【8月更文挑战第19天】
452 0
|
Unix Shell Linux
技术经验分享:Bash脚本命令使用详解
技术经验分享:Bash脚本命令使用详解
1360 0