レコード区切り文字(RS = "\ n \ n")のため、出力XML形式に問題があります。データセットは空行で区切られます。どんな提案でも望ましい結果を得るのに非常に役立ちます。
これはinput.txtの私の入力です。
Alex
Marks300
SubjectScience
Robin
Marks200
SubjectChemistry
次のような出力を取得しようとしています。
<candidate>
<name>Alex</name>
<marks>Marks300</marks>
<subject>SubjectScience</subject>
</candidate>
<candidate>
<name>Robin</name>
<marks>Marks200</marks>
<subject>SubjectChemistry</subject>
</candidate>
次のコードを使用しようとしても機能しません。
awk 'BEGIN{FS = "\\n";RS = "\\n\\n";
print " "}
{ print "<candidate>" }
{ print "<name>"$1"</name>" }
{ print "<marks>"$2"</marks>" }
{ print "<subject>"$3"</subject>" }
{ print "</candidate>" }
{print " " }' input.txt > candiatefinaloutput.xml
上記のコードを使用すると、次のような結果が得られます。
<candidate>
<name>alex<\name>
<marks><\marks>
<subject><\subject>
<name>Marks300<\name>
<marks><\marks>
<subject><\subject>
<name>SubjectScience<\name>
<marks><\marks>
<subject><\subject>
<name>Robin<\name>
<marks><\marks>
<subject><\subject>
など。
ベストアンサー1
次のことを試してみてください。
awk 'BEGIN{FS = "\n";RS = "\n\n";
print " "}
{ print "<candidate>" }
{ print "<name>"$1"</name>" }
{ print "<marks>"$2"</marks>" }
{ print "<subject>"$3"</subject>" }
{ print "</candidate>" }
{print " " }' input.txt > candiatefinaloutput.xml
これが私が得るものです:
[romeo.romeo-PC] ➤ cat 3
Alex
Marks300
SubjectScience
Robin
Marks200
SubjectChemistry
✔
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
[2015-05-07 09:00.04] ~/tmp
[romeo.romeo-PC] ➤ awk 'BEGIN{FS = "\n";RS = "\n\n";
print " "}
{ print "<candidate>" }
{ print "<name>"$1"</name>" }
{ print "<marks>"$2"</marks>" }
{ print "<subject>"$3"</subject>" }
{ print "</candidate>" }
{print " " }' 3
<candidate>
<name>Alex</name>
<marks>Marks300</marks>
<subject>SubjectScience</subject>
</candidate>
<candidate>
<name>Robin</name>
<marks>Marks200</marks>
<subject>SubjectChemistry </subject>
</candidate>