bash内置命令mapfile:读取文件内容到数组
时间: 2023-12-03 10:43:00 浏览: 33
是的,`mapfile` 是 Bash 的一个内置命令,它可以将文件的内容读入一个数组中。
其基本语法如下:
```bash
mapfile [-n count] [-O origin] [-t] [-u fd] [-C callback] [-c quantum] [array]
```
其中,选项说明如下:
- `-n count`:指定读取文件的行数,默认为全部读取。
- `-O origin`:指定从数组的哪个下标开始存储读取到的数据,默认为0。
- `-t`:去掉每行结尾的换行符。
- `-u fd`:从指定的文件描述符 fd 中读取数据,默认为标准输入。
- `-C callback`:每读取一行数据就调用指定的回调函数。
- `-c quantum`:每次读取的行数,默认为5000。
其中,`array` 是要存储读取到的数据的数组名。
举个例子,假设我们有一个名为 `file.txt` 的文件,其内容如下:
```
apple
banana
cherry
```
我们可以使用 `mapfile` 命令将其读入一个数组中,示例代码如下:
```bash
mapfile -t arr < file.txt
echo ${arr[0]} # 输出 apple
echo ${arr[1]} # 输出 banana
echo ${arr[2]} # 输出 cherry
```
在这个例子中,我们使用 `-t` 选项去掉了每行结尾的换行符,并将读取到的数据存储到了一个名为 `arr` 的数组中。最后,我们使用 `${arr[index]}` 的方式访问数组元素。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)