проблема результата awk - PullRequest
0 голосов
/ 28 марта 2011

Я использую команду для поиска строк и чисел в файле.

awk -F'[=,: ]' '{print /uid=/?$4:(/^telephoneN/)?$2:$3}'  1.txt

вывод выглядит как

a
b
c
d

e
f
g
t

Я хотел бы записать этот вывод в файл 2xml

<xml>
<name>aaaa</name>
<surname>bbbb</surname>
...
</xml>
<xml>
<name>eeee</name>
<surname>ffff</surname>
...
</xml>

Я не знаю, как управлять результатом из awk.Не могли бы вы помочь мне, пожалуйста?

Заранее спасибо

1 Ответ

1 голос
/ 28 марта 2011

Мне было бы приятно увидеть, как выглядят ваши реальные данные, но, учитывая, что ваш вывод показывает 4 поля, а ваш ввод показывает 4 поля, вот основная идея.

awk 'BEGIN {
   RS="" # make blank line between sets of data the RecordSep
   FS="\n" # make each line as a field in the rec (like $1, $2 ...)
}
{ # this is the main loop, each record set is procssed here   
    printf("<xml>\n\t<name>%s</name>\n\t<surname>%s</surname>\n\t<Addr1>%s</Addr1>\n\t<Addr2>%s</Addr2>\n</xml>",
       $1, $2, $3, $4 )
} ' 1.txt > 1.xml

Примечание: там должно бытьбыть только 1 пустым, как между вашими наборами записей.

Надеюсь, это поможет.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...