В основном я пытаюсь распечатать таблицу с 4 полями в строке, и пятое поле должно полностью перейти во вторую строку, чтобы Восьмое поле.
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
Не могли бы вы посоветовать.
Вы можете распечатать свой файл по строкам через каждое 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 ()и обрабатывать каждое поле исходного файла как отдельную запись/отдельную строку.
Если вам нужен заголовок, вы можете распечатать его в разделе BEGIN awk.
PS :Если ваши поля разделены пробелом, отрегулируйте RS (Разделитель записей )соответствующим образом:
$ awk -v RS=" " '{printf("%s%s",$0,(NR%4==0?"\n":RS))}' file7