shell strings="name,811,aaa|bbb|ccc|ddd|eee|fff" 先按逗号分隔存放在一个数组中,后期按|分割存放在另外一个数组中
时间: 2023-08-21 18:06:51 浏览: 95
以任意指定的字符分割一个字符串,然后保存在字符串数组中
5星 · 资源好评率100%
要将字符串按逗号分割并存放在一个数组中,然后按竖线分割存放在另一个数组中,可以使用 Shell 中的字符串分割功能。以下是一个示例的 Shell 脚本:
```shell
#!/bin/bash
# 定义字符串
strings="name,811,aaa|bbb|ccc|ddd|eee|fff"
# 按逗号分割并存放在数组中
IFS=, read -ra array1 <<< "$strings"
# 按竖线分割并存放在另一个数组中
IFS='|' read -ra array2 <<< "${array1[2]}"
# 输出数组内容
echo "数组1:${array1[@]}"
echo "数组2:${array2[@]}"
```
在这个示例中,我们首先定义了一个包含逗号和竖线的字符串 `strings`。然后,我们使用 `read` 命令和 `IFS` 变量将字符串按逗号分割,并将分割后的结果存放在数组 `array1` 中。接着,我们使用 `read` 命令和 `IFS` 变量将 `array1` 中的第三个元素按竖线分割,并将结果存放在数组 `array2` 中。
最后,我们使用 `echo` 命令输出两个数组的内容。
执行以上脚本,你将会得到以下输出:
```
数组1:name 811 aaa|bbb|ccc|ddd|eee|fff
数组2:aaa bbb ccc ddd eee fff
```
数组 `array1` 包含了按逗号分割后的元素,数组 `array2` 包含了按竖线分割后的元素。
希望这个示例能满足你的需求。如果你有任何其他问题,请随时提问。
阅读全文