【发布时间】:2014-04-30 03:52:10
【问题描述】:
:) 好吧,我想从 file.o 中读取行并保存第一列和第二列,并且我想将其保存到 bash 中的二维数组中。过滤没问题,它的想法是正确的。但是我不知道如何检查数组是否为空(我的意思是它没有向该数组保存任何内容,所以它全部来自文件)。其次,我在 FUNCTION 和 RELIANCE 上遇到错误,即找不到命令,并且 echo 再次不起作用,尝试用谷歌搜索所有内容,但似乎没有人在使用两个索引维度数组。任何提示都可以!
#!/bin/bash
declare -a NAMES
declare -a FUNCTION
declare -a RELIANCE
index=1
index1=1
for a in file.o
do
NAMES[$index]=$a
until [ nm file.o | grep -o '[UTBGCD].*' | awk '{print $2}' | awk "NR==$index1" -eq 0 ]
do
FUNCTION[$index][$index1]=$( nm file.o | grep -o '[UTBGCD].*' | awk '{print $2}' | awk "NR==$index1" )
RELIANCE[$index][$index1]=$( nm filea.o | grep -o '[UTBGCD].*' | awk '{print $1}' | awk "NR==$index1" )
echo ${FUNCTION[$index][$index1]}
index1=$((index1+1))
done
index=$((index+1))
done
【问题讨论】:
-
顺便说一句,非环境、非内置变量的全大写名称与最佳实践背道而驰——让您面临命名空间冲突。
-
你会得到更多的答案,如果你在一个表格中问什么是容易测试的(所以,不是
nm *.o |...之类的。所以提供:1)样本输入数据和2。)想要的输出.. -
您可能希望使用不同的语言进行此类数据处理;
bash不是为它设计的。
标签: arrays bash multidimensional-array echo