[英]Pass each from File as as an argument to different Array in shell
我想将文件的每一行或每一列作为参数传递给不同的数组。
The file name is Entry.txt
Pool Library Name
Backup lib1 Deepak
Clone lib2 Raju
Tape lib3 Guru
Code is :
read -r -a array < Entry.txt
pool=("${array[0]}")
library=("${array[1]}")
Name=("${array[2]}")
现在,问题是我只在池数组中获取输入,但没有在其他数组中获取任何值。
我需要的是像这样的数组:
pool=(Backup Clone Tape)
Library=(lib1 lib2 lib3)
Name=(Deepak Raju Guru)
请帮忙。
read -a
(没有自定义-d
)读取一行中的单词。 但是,您想要读取条目,即列中的行,因此使用mapfile
。 将每一列读入其自己的数组
前两点可以在一个awk
one-liner中完成。
mapfile -t pool < <(awk 'NR > 1 {print $1}' yourFile)
mapfile -t library < <(awk 'NR > 1 {print $2}' yourFile)
mapfile -t name < <(awk 'NR > 1 {print $3}' yourFile)
或者在一个循环中
column=1
for arrayname in pool library name; do
mapfile -t "$arrayname" < <(awk "NR > 1 {print \$$column}" yourFile)
((column++))
done
您可以 在线测试此解决方案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.