使用数组项创建文件作为文件名

时间:2017-06-12 10:25:07

标签: arrays linux bash shell filenames

我试图创建给定ID及其各自日期的文件。我想使用数组项来设置这些文件的名称。问题是结果不是我在创建文件时所期望的。我很感激你的帮助。

期望的输出:

我想以下列格式创建文件:

FILE_300002_20170515.txt
FILE_500032_20170426.txt
FILE_400044_20170101.txt

当前输出:

FILE_300002_400044.txt
FILE_300002_300002.txt
FILE_300002_500032.txt

文件示例:

这是我输入文件的内容:

300002,20170515,500032,20170426,400044,20170101

我的代码:

IFS=',' read -r -a array <<< "$input"   

ini=1
ID=0
Da=1
num="${#array[@]}"
let num=num/2

while [ $ini -le $num ];do
touch "/path/FILE_${array[Da]}_${array[ID]}.txt"
let ini=ini+1
let Da=Da+2
let ID=ID+2
done

****我注意到在文件名上只使用了'/path/FILE_${array[ID]}.txt',显示了所有正确的ID,但是当使用两者时,'/path/FILE_${array[Da]}_${array[ID]}.txt'搞砸了

2 个答案:

答案 0 :(得分:2)

可以这样做

IFS=',' read -r -a array <<< "$input"

for((i=0;i<${#array[@]}-1;i+=2));do

    touch "/path/FILE_${array[i]}_${array[i+1]}.txt"

done

答案 1 :(得分:1)

awk 替代方法:

> ls -1 FILE_*
FILE_300002_20170515.txt
FILE_400044_20170101.txt
FILE_500032_20170426.txt

检查结果:

system(command)
  • - Close the IDE, delete the folder manually. - Open IDE run "npm cache clean". - Then run npm install. - 执行操作系统命令命令