awk结果问题

时间:2011-03-28 10:26:32

标签: file awk

我使用命令在文件中查找字符串和数字

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

输出类似于

a
b
c
d

e
f
g
t

我想将此输出写入文件2.xml

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

我不知道如何管理awk的结果。 你能帮帮我吗?

提前致谢

1 个答案:

答案 0 :(得分:1)

我很高兴看到你的真实数据是什么样的,但鉴于你的输出显示了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个空白。

我希望这会有所帮助。

P.S。因为你似乎是一个新用户,如果你得到一个帮助你的答案,请记住将其标记为已接受,或者给它一个+(或 - )作为一个有用的答案。