From 195b2d6341c6dfb7259c4d8c4cd9869719941423 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 30 Jul 2023 09:01:36 +0800 Subject: [PATCH] RP @geekpi https://linux.cn/article-16047-1.html --- ...Bash Basics Series 6 Handling String Operations.md | 39 +++++++++++-------- 1 file changed, 22 insertions(+), 17 deletions(-) rename {translated/tech => published}/20230717.0 ⭐️⭐️ Bash Basics Series 6 Handling String Operations.md (78%) diff --git a/translated/tech/20230717.0 ⭐️⭐️ Bash Basics Series 6 Handling String Operations.md b/published/20230717.0 ⭐️⭐️ Bash Basics Series 6 Handling String Operations.md similarity index 78% rename from translated/tech/20230717.0 ⭐️⭐️ Bash Basics Series 6 Handling String Operations.md rename to published/20230717.0 ⭐️⭐️ Bash Basics Series 6 Handling String Operations.md index 98cbb393bb..bcf5e47838 100644 --- a/translated/tech/20230717.0 ⭐️⭐️ Bash Basics Series 6 Handling String Operations.md +++ b/published/20230717.0 ⭐️⭐️ Bash Basics Series 6 Handling String Operations.md @@ -3,24 +3,26 @@ [#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-16047-1.html" Bash 基础知识系列 #6:处理字符串操作 ====== +![][0] + 在大多数编程语言中,你都会找到字符串数据类型。字符串基本上是一组字符。 但 Bash shell 有所不同。字符串没有单独的数据类型。这里一切都是变量。 但这并不意味着你不能像在 C 和其他编程语言中那样处理字符串。 -在 Bash shell 中可以查找子字符串、替换子字符串、连接字符串以及更多字符串操作。 +在 Bash Shell 中可以查找子字符串、替换子字符串、连接字符串以及更多字符串操作。 在 Bash 基础知识系列的这一部分中,你将学习基本的字符串操作。 -### 在 bash 中获取字符串长度 +### 在 Bash 中获取字符串长度 让我们从最简单的选项开始。也就是获取字符串的长度。这很简单: @@ -34,9 +36,9 @@ ${#string} 正如你所看到的,第二个示例中有两个单词,但由于它用引号引起来,因此它被视为单个单词。连空格都算作一个字符。 -### 在 bash 中连接字符串 -] -技术术语是字符串连接,这是 bash 中最简单的字符串操作之一。 +### 在 Bash 中连接字符串 + +用技术术语来说是字符串 连接concatenation,这是 Bash 中最简单的字符串操作之一。 你只需像这样一个接一个地使用字符串变量: @@ -44,7 +46,7 @@ ${#string} str3=$str1$str2 ``` -还能比这更简单吗? 我不这么认为。 +还能比这更简单吗?我觉得不能。 让我们看一个例子。这是我的示例脚本,名为 `join.sh`: @@ -63,7 +65,7 @@ echo "The joined string is: $joined" ![Join two strings in bash][2] -### 在 bash 中提取子字符串 +### 在 Bash 中提取子字符串 假设你有一个包含多个字符的大字符串,并且你想要提取其中的一部分。 @@ -73,7 +75,7 @@ echo "The joined string is: $joined" ${string:$pos:$len} ``` -> 💡和数组一样,字符串中的定位也是从 0 开始。 +> 💡 和数组一样,字符串中的定位也是从 0 开始。 这是一个例子: @@ -81,7 +83,7 @@ ${string:$pos:$len} 即使你指定的子字符串长度大于字符串长度,它也只会到达字符串末尾。 -### 替换 bash 中的子字符串 +### 替换 Bash 中的子字符串 假设你有一个大字符串,并且你想用另一个字符串替换其中的一部分。 @@ -91,7 +93,7 @@ ${string:$pos:$len} ${string/substr1/substr2} ``` -> ✋ 只有第一次出现的子字符串才会以这种方式替换。如果要替换所有出现的地方,请使用`${string//substr1/substr2}` +> ✋ 只有第一次出现的子字符串才会以这种方式替换。如果要替换所有出现的地方,请使用 `${string//substr1/substr2}` 这是一个例子: @@ -101,7 +103,7 @@ ${string/substr1/substr2} > 💡 如果未找到子字符串,则不会替换任何内容。它不会导致错误。 -### 在 bash 中删除子字符串 +### 在 Bash 中删除子字符串 我们来谈谈删除子字符串。假设你要删除字符串的一部分。在这种情况下,只需将子字符串提供给主字符串,如下所示: @@ -123,11 +125,13 @@ ${string/substring} 现在是你通过简单练习来实践字符串操作的时候了。 -**练习 1**:声明一个字符串 “I am all wet”。现在通过用 set 替换单词 wet 来更改此字符串。 +**练习 1**:声明一个字符串 “I am all wet”。现在通过用 “set” 替换单词 “wet” 来更改此字符串。 **练习 2**:创建一个字符串,以 `112-123-1234` 格式保存电话号码。现在,你必须删除所有 `-`。 -这应该会给你一些在 bash 中使用字符串的不错的练习。在下一章中,你将学习如何在 bash 中使用 if-else 语句。敬请关注。 +这应该会给你一些在 Bash 中使用字符串的不错的练习。在下一章中,你将学习如何在 Bash 中使用 `if-else` 语句。敬请关注。 + +*(题图:MJ/aa73b2c9-6d2f-42e2-972d-94fab56d30cc)* -------------------------------------------------------------------------------- @@ -136,7 +140,7 @@ via: https://itsfoss.com/bash-strings/ 作者:[Abhishek Prakash][a] 选题:[lkxed][b] 译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -147,3 +151,4 @@ via: https://itsfoss.com/bash-strings/ [3]: https://itsfoss.com/content/images/2023/07/extract-substring-bash.png [4]: https://itsfoss.com/content/images/2023/07/replace-substring-bash.png [5]: https://itsfoss.com/content/images/2023/07/bash-delete-substring.png +[0]: https://img.linux.net.cn/data/attachment/album/202307/30/090030gvm6pgutlvzll4zg.jpg \ No newline at end of file