Bash如何提取子字符串
发表于:2024-12-03 作者:千家信息网编辑
千家信息网最后更新 2024年12月03日,这篇文章给大家分享的是有关Bash如何提取子字符串的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。所谓"子字符串"就是出现在其它字符串内的字符串。 比如 "3382" 就是
千家信息网最后更新 2024年12月03日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安全错误
数据库的锁怎样保障安全
中国5g网络技术在德国
我心中的网络安全1200字作文
客户数据库管理设计
河南启硕网络技术有限公司
中国政务软件开发
国内外大学生数据库
软件开发团队组织结构
tomcat访问数据库文件
滨湖区重型软件开发哪里好
暑假不知道玩什么服务器
甘肃高校党建软件开发哪儿好
火山软件开发平台模拟滑动
服务器怎么开通ping服务
珠海卫星软件开发费用
软件开发框架图
上海派单四方支付软件开发电话
区块链和金融服务器哪个好
道哥写的网络安全的书
简答题数据库设计有什么原则
菲律宾电脑软件开发行业
数据库读取日期格式
微型计算机数据库系统
网络安全画报不要文字a3纸
职称论文收录数据库
湖南潮流软件开发价格服务标准
网络安全宣传周背景分析
网络技术 好考吗
java 数据库记录提交
长沙雁楚网络技术
服务器硬盘直接拔插