У меня есть CSV-файл с заголовками, разделенными запятыми, и я хочу включить их в таблицу.
Вход:
header,word1,word2,word3
supercalifragi,black,white,red
adc,bad,cat,love
Выход:
| header | word1 | word2 | word3 |
| -------------- | ----- | ----- | ----- |
| supercalifragi | black | white | red |
| adc | bad | cat | love |
Мне нужно включить заголовки и мне нужно учесть длину слов во входном файле, чтобы готовая таблица правильно форматировалась
Вот обновленный код:
function pr(){
for(i=1;i<=NF;i++)
printf "| %-"len[i]+1"s",$i;
printf "|\n"
}
NR==FNR{
for(i=1;i<=NF;i++)
if(len[i]<length($i)){
len[i]=length($i);
word[i]=$i
}next
}{pr()}
FNR==1{
for(i=1;i<=NF;i++){
gsub(/./,"-",word[i]);
$i=word[i]};
pr()
}
``
, OFS
напечатает две трубы вместо одной (или должно): запятая означает OFS.printf "\n"
должно читаться какprint ""
, если вам нужна обратная перевозка. Однако он не напечатает желаемый результат. Наконец,#NR=1
: нет. Эта часть вашего кода выполняется для всех записей, поэтому она начинается с NR=1, затем NR=2, NR=3 и так далее. Вы можете прочитать руководство. - person Daemon Painter   schedule 20.04.2018