我正在尝试创建一个文件名数组,这样我就可以对一个大文件进行排序,只选择我想要的文件。我的脚本看起来像这样
set STATIONS = Kanto-station-names
文件夹" Kanto-station-names"有我想要的文件的名称。接下来是myarr=($(awk '{print $1}') $STATIONS)
,但终端会立即进入子shell,看起来更像是工作文档,命令不起作用,我无法退出。有什么建议吗?
答案 0 :(得分:0)
为什么不使用find命令创建一个数组来获取文件名列表?
例如:
#!/bin/bash
IFS=$'\n'
MyArr=($(find /location/to/Kanto-station-names/ -type f -print0 | xargs -0 ls))
echo ${MyArr[@]}
echo ${MyArr[1}
echo ${MyArr[2}
echo ${MyArr[3}
答案 1 :(得分:0)
你的问题很难理解,但是如果你只想在Kanto-station-names目录中创建一个包含所有文件名的数组,那么这应该可行(请注意,前导' $'是一个提示,而不是你应该键入的东西):
$ myArray=()
$ for FILE in `ls Kanto-station-names` ; do myArray+=($FILE) ; done
之后,您可以访问数组元素:
$ echo ${myArray[0]}
$ echo ${myArray[1]}
等。 要查看数组的所有元素:
$ echo ${myArray[@]}