我使用命令在文件中查找字符串和数字
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的结果。 你能帮帮我吗?
提前致谢
答案 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。因为你似乎是一个新用户,如果你得到一个帮助你的答案,请记住将其标记为已接受,或者给它一个+(或 - )作为一个有用的答案。