grep导致数组

时间:2016-07-17 21:48:08

标签: arrays bash grep

我有一个文档,其中包含几个文件名,我想用grep来收集所有带有xsd扩展名的文件。当我使用grep和我的正则表达式模式时,我得到了正确的结果,大约18个。现在我想将这些结果存储在一个数组中。我使用了以下bash代码:

targets=($(grep -i "AppointmentManagementService[\.]" AppointmentManagementService\?wsdl))

然后我打印数组大小:

echo ${#targets[@]}

结果是80而不是18,因为它只将一个结果的一部分存储到数组单元中。如何确保只有一个结果进入一个阵列单元?

1 个答案:

答案 0 :(得分:1)

结果可能会在多个单元格中分割,因为字符(最可能是空格)被解释为内部字段分隔符。

尝试执行此操作:

IFS=$'\n' targets=($(grep -i "AppointmentManagementService[\.]" AppointmentManagementService\?wsdl))