2015-04-28 2 views
-4

У меня есть следующие данные в текстовом файлеБаш линия Итерация в сценарии

INSTANCES machine1  
Name Berlin 
Role NA 
INSTANCES machine2 
Name London 
Role NA 
INSTANCES machine3  
Role parser 
Name Dublin 
INSTANCES machine4  
Name Madrid 
INSTANCES machine5 
Role parser 
Name Lisbon 

Мне нужно создать следующий вывод. Как я могу это сделать

machine1 Berlin NA 
machine2 London NA 
machine3 Dublin parser 
machine4 Madrid NONE 
machine5 Lisbon parser 
+2

использовать какой-либо один из нескольких доступных программ на Linux. Вероятно, у вас установлены awk, sed и perl. Эти могут использоваться для этой основной манипуляции с текстом. –

+0

Тег [tag: processing] должен использоваться только для вопросов о языке обработки. –

ответ

0

Это следует сделать это:

#!/bin/bash 
count=0 
while read -r line; do 
arr=($line) 
if [[ $line == *INSTANCES* ]]; then 
[[ $count != 0 ]] && new+="\n"${arr[1]} || new+=${arr[1]} 
else 
new+=" ${arr[1]}" 
fi 
((count++)) 
done <file 
new+="\n" 
printf "$new" 

файл текст Имя файла