所谓“子字符串”就是出现在其它字符串内的字符串。 比如 “3382” 就是 “this is a 3382 test” 的子字符串。 我们有多种方法可以从中把数字或指定部分字符串抽取出来。
-- Vivek Gite
本文导航
在 Bash 中抽取子字符串
12%
使用 IFS
29%
借助 cut 命令
72%
编译自 https://www.cyberciti.biz/faq/how-to-extract-substring-in-bash/
作者 Vivek Gite
译者 lujun9972
所谓“子字符串”就是出现在其它字符串内的字符串。 比如 “3382” 就是 “this is a 3382 test” 的子字符串。 我们有多种方法可以从中把数字或指定部分字符串抽取出来。
How to Extract substring in Bash Shell on Linux or Unix
本文会向你展示在 bash shell 中如何获取或者说查找出子字符串。
在 Bash 中抽取子字符串
其语法为:
子字符串扩展是 bash 的一项功能。它会扩展成 值中以 为开始,长为 个字符的字符串。 假设, 定义如下:
那么下面参数的子字符串扩展会抽取出子字符串:
结果为:
其中这些参数分别表示:
10 : 偏移位置
4 : 长度
使用 IFS
根据 bash 的 man 页说明:
IFS (内部字段分隔符)
[1]
用于在扩展后进行单词分割,并用内建的 read 命令将行分割为词。默认值是。
另一种POSIX 就绪POSIX ready的方案如下:
输出为:
下面是一段 bash 代码,用来从 Cloudflare cache 中去除带主页的 url。
它的使用方法为:
借助 cut 命令
可以使用 命令来将文件中每一行或者变量中的一部分删掉。它的语法为:
想了解更多请阅读 bash 的 man 页:
另请参见:Bash String Comparison: Find Out IF a Variable Contains a Substring
[2]
via:https://www.cyberciti.biz/faq/how-to-extract-substring-in-bash/
作者:Vivek Gite
[4]
译者:lujun9972校对:wxy
本文由LCTT原创编译,Linux中国荣誉推出
LCTT 译者
lujun9972
共计翻译:13篇
贡献时间:12 天
领取专属 10元无门槛券
私享最新 技术干货