У меня большой матричный файл csv (input.csv) в следующем формате:
Patient,sample 66_pos_LC/MS Pos_con,sample 57_net_LC/MS Neg_dis,sample 1_LC/MS Polar_con,sample 3_LC/MS Neg_net
xx,2.5,-7.8,2.5,3.6
ab 1,5.4,3,0.3
yy,43,33,77,55
, в зависимости от первой строки файла, я хочу разделить содержимое файла на основе функции LC / MS,То есть, если я хочу все LC / MS Neg, выходной файл будет выглядеть так:
output1.csv
Patient,sample 57_net_LC/MS Neg_dis,sample 3_LC/MS Neg_net
xx,-7.8,3.6
ab,5.4,0.3
yy,33,55
Для этого я использую:
head -n 1 input.csv | tr ',' '\n' | cat -n | grep 'LC/MS Neg'
Это дает номера столбцов, где я должен смотреть (в данном случае: 3 и 5);чтобы получить приведенный выше вывод, я использую:
cut -d, -f1,3,5 input.csv > output1.csv
Хотя это дает мне желаемый вывод, но я считаю, что это будет сложно для извлечения многих столбцов за раз.
Я буду оченьспасибо за решение awk / sed.
Спасибо.