Bash如何提取子字符串
发表于:2025-02-07 作者:千家信息网编辑
千家信息网最后更新 2025年02月07日,这篇文章给大家分享的是有关Bash如何提取子字符串的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。所谓"子字符串"就是出现在其它字符串内的字符串。 比如 "3382" 就是
千家信息网最后更新 2025年02月07日Bash如何提取子字符串
这篇文章给大家分享的是有关Bash如何提取子字符串的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
所谓"子字符串"就是出现在其它字符串内的字符串。 比如 "3382" 就是 "this is a 3382 test" 的子字符串。 我们有多种方法可以从中把数字或指定部分字符串抽取出来。
在 Bash 中抽取子字符串
其语法为:
## 格式 ##${parameter:offset:length}
子字符串扩展是 bash 的一项功能。它会扩展成 parameter 值中以 offset 为开始,长为 length 个字符的字符串。 假设, $u 定义如下:
## 定义变量 u ##u="this is a test"
那么下面参数的子字符串扩展会抽取出子字符串:
var="${u:10:4}"echo "${var}"
结果为:
test
其中这些参数分别表示:
10 : 偏移位置 4 : 长度
使用 IFS
根据 bash 的 man 页说明:
IFS (内部字段分隔符)用于在扩展后进行单词分割,并用内建的 read 命令将行分割为词。默认值是。
另一种 POSIX 就绪POSIX ready的方案如下:
u="this is a test"set -- $uecho "$1"echo "$2"echo "$3"echo "$4"
输出为:
thisisatest
下面是一段 bash 代码,用来从 Cloudflare cache 中去除带主页的 url。
#!/bin/bash###################################################### Author - Vivek Gite {https://www.cyberciti.biz/}## Purpose - Purge CF cache## License - Under GPL ver 3.x+###################################################### set me first ##zone_id="YOUR_ZONE_ID_HERE"api_key="YOUR_API_KEY_HERE"email_id="YOUR_EMAIL_ID_HERE"## hold data ##home_url=""amp_url=""urls="$@"## Show usage[ "$urls" == "" ] && { echo "Usage: $0 url1 url2 url3"; exit 1; }## Get home page url as we have various sub dirs on domain## /tips/## /faq/get_home_url(){local u="$1"IFS='/'set -- $uecho "${1}${IFS}${IFS}${3}${IFS}${4}${IFS}"}echoecho "Purging cache from Cloudflare。.。"echofor u in $urlsdohome_url="$(get_home_url $u)"amp_url="${u}amp/"curl -X DELETE "https://api.cloudflare.com/client/v4/zones/${zone_id}/purge_cache" \-H "X-Auth-Email: ${email_id}" \-H "X-Auth-Key: ${api_key}" \-H "Content-Type: application/json" \--data "{\"files\":[\"${u}\",\"${amp_url}\",\"${home_url}\"]}"echodoneecho
它的使用方法为:
~/bin/cf.clear.cache https://www.cyberciti.biz/faq/bash-for-loop/https://www.cyberciti.biz/tips/linux-security.html
借助 cut 命令
可以使用 cut 命令来将文件中每一行或者变量中的一部分删掉。它的语法为:
u="this is a test"echo "$u" | cut -d' ' -f 4echo "$u" | cut --delimiter=' ' --fields=4############################################ WHERE## -d' ' : Use a whitespace as delimiter## -f 4 : Select only 4th field##########################################var="$(cut -d' ' -f 4 "echo "${var}"
想了解更多请阅读 bash 的 man 页:
man bashman cut
感谢各位的阅读!关于"Bash如何提取子字符串"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
字符
字符串
命令
更多
内容
参数
变量
就是
方法
篇文章
语法
抽取
不错
实用
一行
主页
从中
代码
位置
使用方法
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
app软件开发的商机分析
数据库怎么查表内重复记录
网络安全接到举报全部上交
公众号软件开发哪家正规
麦块怎么开服务器
服务器数据全在内存缓存中
吃鸡哪个服务器容易
pt代表什么数据库
xls建立数据库
昆山品质网络技术
信息网络技术的术语有
软件开发安全规范要求
北京星火互动网络技术有限公司
大连养老软件开发
时空猎人在哪个服务器
ibm服务器管理口忘记密码
河北第三方软件开发服务
网络安全工程师的工作收获
织梦数据库文件名称
相城区品牌网络技术要多少钱
珠海无纸化会议管理服务器供应商
宁波教育软件开发公司排名
俄罗斯网络安全投入
linux系统服务器安装
网络安全小短片结尾
没有软件开发经验30岁怎么转行
惠州oa软件开发外包
河北什么是网络技术服务工程
内蒙古九一互联网科技有限公司
服务器系统安装方法