如何在 Bash 中抽取子字符串

所谓“子字符串”就是出现在其它字符串内的字符串。 比如 “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 天

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20171211G03J0200?refer=cp_1026

同媒体快讯

相关快讯

扫码关注云+社区