提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

一个简单的shell脚本确实最常用的,有时候我们需要从文本中一行一行读取并存到数组里。


一、格式转换

假如我有一个文件叫list.txt,如果你是在linux上创建的文件请忽略这个步骤。假如我在windows上编辑过那么格式就不是linux上的unix格式了,我需要先转换格式为unix防止出现意想不到的错误。具体方法请看下面

file list.txt

应该会显示文件类型

list.txt: UTF-8 Unicode text, with CRLF line terminators

这个时候我们需要借助vim的命令,如下操作

vim list.txt

按住shift+冒号进入命令模式输入以下命令

set ff=unix

最后wq保存,再使用file命令查看文件属性就变成unix格式了。

camera_names.txt: UTF-8 Unicode text

没有后面那一段提示了,说明改成功了。

二、读取保存

假如list.txt里面有123,456,789按照行排列,那么只需要执行下面的命令就行了

#!/bin/bash

LISTS=($(cat list.txt))
echo "size: ${#LISTS[*]}"
#注意index从0开始,以size-1结尾
for i in $( seq 0 $((${#LISTS[*]} - 1)) )
do
	#这个i前面的$符号必须加,如果不加默认是字符串
	echo "index: $i"
	#下面这两个的$可以不用加,放在bash里面是变色的
	echo "第: $((i + 1)) 个"
	echo ${LISTS[i]}
done

保存list.sh并执行得到以下结果
size: 3
index: 0
第: 1 个
123
index: 1
第: 2 个
456
index: 2
第: 3 个
789


总结

方法好多,这格式最简单有效的方法

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐