Использование:./split_matrix.awk input.txt
#!/usr/bin/awk -f
BEGIN {
cnt = 1;
}
NR == 1 {
for(i = 3; i <= NF; i++) {
headers[$i] = i;
}
}
NR > 1 {
if( ! file_names[$1]) {
file_names[$1] = cnt++;
printf "%s %s %s\n", "Name", "ID", $1 > "file_"file_names[$1];
}
printf "%s %s %s\n", $1, $2, $headers[$1] >> "file_"file_names[$1];
}
вход
Name ID ABC12 ABCD12 ABCD123 ABCD1234
ABC12 123456 XX YY ZZ JJ
ABC12 123456 XX YY ZZ JJ
ABCD12 123456 XX YY ZZ JJ
ABCD12 123456 XX YY ZZ JJ
ABCD123 123456 XX YY ZZ JJ
ABCD123 123456 XX YY ZZ JJ
ABCD1234 123456 XX YY ZZ JJ
ABCD1234 123456 XX YY ZZ JJ
вывод(используйте tail -n +1 -- file*
для печати имени файла и содержимого файла. Я нашел этот трюк здесь)
==> file_1 <==
Name ID ABC12
ABC12 123456 XX
ABC12 123456 XX
==> file_2 <==
Name ID ABCD12
ABCD12 123456 YY
ABCD12 123456 YY
==> file_3 <==
Name ID ABCD123
ABCD123 123456 ZZ
ABCD123 123456 ZZ
==> file_4 <==
Name ID ABCD1234
ABCD1234 123456 JJ
ABCD1234 123456 JJ
Вы можете добавить x11vnc
к ~/.xinitrc
или, что еще лучше, к ~/.xsession
.