From 6ca219c4026615f80ec1265b398b20add386e836 Mon Sep 17 00:00:00 2001 From: wxy Date: Mon, 11 Dec 2017 00:49:55 +0800 Subject: [PATCH] PRF&PUB:20171206 How to extract substring in Bash.md @lujun9972 https://linux.cn/article-9127-1.html --- ...171206 How to extract substring in Bash.md | 41 +++++++++++-------- 1 file changed, 24 insertions(+), 17 deletions(-) rename {translated/tech => published}/20171206 How to extract substring in Bash.md (73%) diff --git a/translated/tech/20171206 How to extract substring in Bash.md b/published/20171206 How to extract substring in Bash.md similarity index 73% rename from translated/tech/20171206 How to extract substring in Bash.md rename to published/20171206 How to extract substring in Bash.md index f1deaebab9..c4a030303e 100644 --- a/translated/tech/20171206 How to extract substring in Bash.md +++ b/published/20171206 How to extract substring in Bash.md @@ -1,6 +1,7 @@ 如何在 Bash 中抽取子字符串 ====== -子字符串不是别的,就是出现在其他字符串内的字符串。 比如 “3382” 就是 “this is a 3382 test” 的子字符串。 我们有多种方法可以从中把数字或指定部分字符串抽取出来。 + +所谓“子字符串”就是出现在其它字符串内的字符串。 比如 “3382” 就是 “this is a 3382 test” 的子字符串。 我们有多种方法可以从中把数字或指定部分字符串抽取出来。 [![How to Extract substring in Bash Shell on Linux or Unix](https://www.cyberciti.biz/media/new/faq/2017/12/How-to-Extract-substring-in-Bash-Shell-on-Linux-or-Unix.jpg)][2] @@ -8,15 +9,17 @@ ### 在 Bash 中抽取子字符串 -其语法为: -```shell -## syntax ## -${parameter:offset:length} -``` -子字符串扩展是 bash 的一项功能。它会扩展成 parameter 值中以 offset 为开始,长为 length 个字符的字符串。 假设, $u 定义如下: +其语法为: ```shell -## define var named u ## +## 格式 ## +${parameter:offset:length} +``` + +子字符串扩展是 bash 的一项功能。它会扩展成 `parameter` 值中以 `offset` 为开始,长为 `length` 个字符的字符串。 假设, `$u` 定义如下: + +```shell +## 定义变量 u ## u="this is a test" ``` @@ -34,6 +37,7 @@ test ``` 其中这些参数分别表示: + + 10 : 偏移位置 + 4 : 长度 @@ -41,9 +45,9 @@ test 根据 bash 的 man 页说明: -> The Internal Field Separator that is used for word splitting after expansion and to split lines into words with the read builtin command。The default value is。 +> [IFS (内部字段分隔符)][3]用于在扩展后进行单词分割,并用内建的 read 命令将行分割为词。默认值是。 -另一种 POSIX 就绪(POSIX ready) 的方案如下: +另一种 POSIX 就绪POSIX ready的方案如下: ```shell u="this is a test" @@ -54,7 +58,7 @@ echo "$3" echo "$4" ``` -输出为: +输出为: ```shell this @@ -63,7 +67,7 @@ a test ``` -下面是一段 bash 代码,用来从 Cloudflare cache 中去除带主页的 url +下面是一段 bash 代码,用来从 Cloudflare cache 中去除带主页的 url。 ```shell #!/bin/bash @@ -113,14 +117,15 @@ done echo ``` -它的使用方法为: +它的使用方法为: + ```shell ~/bin/cf.clear.cache https://www.cyberciti.biz/faq/bash-for-loop/ https://www.cyberciti.biz/tips/linux-security.html ``` ### 借助 cut 命令 -可以使用 cut 命令来将文件中每一行或者变量中的一部分删掉。它的语法为: +可以使用 `cut` 命令来将文件中每一行或者变量中的一部分删掉。它的语法为: ```shell u="this is a test" @@ -135,13 +140,14 @@ var="$(cut -d' ' -f 4 <<< $u)" echo "${var}" ``` -想了解更多请阅读 bash 的 man 页: +想了解更多请阅读 bash 的 man 页: + ```shell man bash man cut ``` -另请参见: [Bash String Comparison: Find Out IF a Variable Contains a Substring][1] +另请参见: [Bash String Comparison: Find Out IF a Variable Contains a Substring][1] -------------------------------------------------------------------------------- @@ -149,10 +155,11 @@ via: https://www.cyberciti.biz/faq/how-to-extract-substring-in-bash/ 作者:[Vivek Gite][a] 译者:[lujun9972](https://github.com/lujun9972) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 [a]:https://www.cyberciti.biz [1]:https://www.cyberciti.biz/faq/bash-find-out-if-variable-contains-substring/ [2]:https://www.cyberciti.biz/media/new/faq/2017/12/How-to-Extract-substring-in-Bash-Shell-on-Linux-or-Unix.jpg +[3]:https://bash.cyberciti.biz/guide/$IFS