awk结果问题

发布于 2024-10-27 10:05:39 字数 461 浏览 2 评论 0原文

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

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 的结果。 你能帮我一下吗?

提前致谢

I use a command for finding strings and numbers in a file

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

the output is something like

a
b
c
d

e
f
g
t

I would like to write this output in a file 2.xml

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

I don't know how to manage the result from awk.
Could you help me please?

Thanks in advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

-黛色若梦 2024-11-03 10:05:39

我很高兴看到您的真实数据是什么样子,但考虑到您的输出显示 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,由于您似乎是新用户,如果您得到的答案对您有帮助,请记住将其标记为已接受,或给它一个+(或-)作为有用的答案。

I would be nice to see what your real data looks like, but given that your output shows 4 fields and your input shows 4 fields, here is the basic idea.

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

Note: there should be only 1 blank like between your record sets.

I hope this helps.

P.S. as you appear to be a new user, if you get an answer that helps you please remember to mark it as accepted, or give it a + (or -) as a useful answer.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文