2016-07-17 2 views
0

У меня есть документ, содержащий несколько имен файлов, по которым я хочу использовать grep для сбора всех файлов с расширением xsd. Когда я использую grep с моим шаблоном регулярного выражения, я получаю правильные результаты, около 18 из них. Теперь я хочу сохранить эти результаты в массиве. Я использовал следующий Баш код:Результаты grep в массиве

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

Затем напечатать размер массива:

echo ${#targets[@]} 

, который оказывается 80 вместо 18, так как он хранится только часть одного результата в ячейку массива , Как я могу убедиться, что только один результат попадает в одну ячейку массива?

ответ

1

Результаты, вероятно, будут разделены на несколько ячеек, потому что символ (наиболее вероятное пространство) интерпретируется как внутренний разделитель полей.

Попробуйте выполнить это следующим образом:

IFS=$'\n' targets=($(grep -i "AppointmentManagementService[\.]" AppointmentManagementService\?wsdl)) 
Смежные вопросы