デフォルトでは、1行に4つのフィールドを持つテーブルを印刷しようとしています。 5番目のフィールドは、2行目から8番目のフィールドまで続く必要があります。
awk 'BEGIN{
FS=" "
print "<HTML><BR><h2><CENTER><BODY> DETAILS </BODY></CENTER> </h2> <BR><CENTER><table border=1> <CENTER>"
print "<TR><TH>No</TH><TH>Name</TH><TH>task</TH><TH>location</TH></TR>"
}
{
printf "<TR>"
for(i=5;i<=NF;i++)
printf "<TD><CENTER>%s</CENTER></TD>", $i
print "</TR>"
}
END{
print "</TABLE></HTML>"
}' /home/xyz/found.txt
私は今私が受け取っているものより低いものを望んでいません。同じ行に印刷されます。
No Name task Location
1001 Mike Texting US 1002 Mark Chatting UK
しなければならない
No Name task Location
1001 Mike Texting US
1002 Mark Chatting UK
いくつかの提案をすることができますか?
ベストアンサー1
以下を使用して、4つのフィールドごとに行ごとにファイルを印刷できます。
$ cat file7
abc,def,ghi,nop,klm,one,two,three,four,five,six,nine
$ awk -v RS="," '{printf("%s%s",$0,(NR%4==0?"\n":RS))}' file7
abc,def,ghi,nop
klm,one,two,three
four,five,six,nine
カスタムレコード区切り記号(RS)を使用すると、行番号(NR)を利用し、ソースファイルの各フィールドを別々のレコード/別々の行として扱うことができます。
ヘッダーが必要な場合は、awkのBEGINセクションで印刷できます。
PS:フィールドがスペースで区切られている場合は、それに応じてRS(レコード区切り記号)を調整してください。
$ awk -v RS=" " '{printf("%s%s",$0,(NR%4==0?"\n":RS))}' file7