shell读文件到数组
时间: 2024-12-06 12:14:35 浏览: 24
在Shell脚本中,将文件内容读取到数组中是一个常见的需求。可以通过多种方法实现这一点。以下是一个简单的示例,展示如何将文件中的每一行读取到一个数组中:
```bash
#!/bin/bash
# 定义文件路径
file_path="example.txt"
# 使用mapfile命令将文件内容读取到数组中
mapfile -t array < "$file_path"
# 遍历数组并打印每个元素
for element in "${array[@]}"
do
echo "$element"
done
```
在这个示例中,`mapfile`命令将文件`example.txt`的内容按行读取到数组`array`中。然后,通过`for`循环遍历数组并打印每个元素。
如果你不想使用`mapfile`命令,也可以使用`while`循环和`read`命令来实现相同的功能:
```bash
#!/bin/bash
# 定义文件路径
file_path="example.txt"
# 使用while循环和read命令将文件内容读取到数组中
IFS=$'\n' read -d '' -r -a array < "$file_path"
# 遍历数组并打印每个元素
for element in "${array[@]}"
do
echo "$element"
done
```
在这个示例中,`IFS=$'\n'`设置内部字段分隔符为换行符,以确保每行作为一个单独的数组元素读取。`read -d '' -r -a array < "$file_path"`将文件内容读取到数组`array`中。
阅读全文