Как запустить новый столбец после каждой рядной строки?

Как Orient говорит в комментарии, сначала вам нужно добавить репозиторий. Но какой репозиторий? Ответ оказывается скрытым на виду на странице, которую вы связали. Поскольку текущая версия 3.8, оказывается, вам нужно добавить репозиторий без номера версии. Я не знаю, на какой дистрибутив переводится ваша версия Linux Mint, но для Ubuntu 14.04, чтобы соответствовать примеру Orient, вы должны использовать:

sudo apt-add-repository "deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.8 main"

sudo apt-get update

sudo apt-get install clang-3.8 lldb-3.8

$ clang-3.8 -v
Ubuntu clang version 3.8.0-svn262614-1~exp1 (trunk) (based on LLVM 3.8.0)
1
31.12.2018, 15:28
2 ответа

Сawk:

awk '{a[NR%4] = a[NR%4] (NR<=4 ? "" : ",") $0}
     END{for (i = 1; i <= 4; i++) print a[i%4]}' < input.txt
4
27.01.2020, 23:31

Попробуйте pasteобъединить четыре строки в одну, readобъединить их в четыре переменные, добавив каждую к выходным строкам:

paste -s -d"   \n" file | 
{ while read A B C D 
    do  L1="$L1$DL$A"
        L2="$L2$DL$B"
        L3="$L3$DL$C"
        L4="$L4$DL$D"
        DL=, 
    done 
  printf "%s\n" "$L1" "$L2" "$L3" "$L4"  
}
col1,col2,col3,col1,col2,col3,
1,disease1,high,2,disease1,low,
1,disease2,low,2,disease2,low,
1,disease3,high,2,disease3,high,

РЕДАКТИРОВАТЬ:или, немного проще, pasteне нужно:

while read A && read B && read C && read D     
  do    L1="$L1$DL$A"
        L2="$L2$DL$B"
        L3="$L3$DL$C"
        L4="$L4$DL$D"
        DL=,     
  done < file 
printf "%s\n" "$L1" "$L2" "$L3" "$L4"
0
27.01.2020, 23:31

Теги

Похожие вопросы