Bash/R ищет столбцы в огромной таблице

#r #bash #search

Вопрос:

У меня есть огромная таблица, из которой я хочу извлечь информацию. Во-первых, я хочу извлечь определенную строку на основе шаблона — > Я успешно сделал это с помощью grep. Однако в этой строке множество столбцов, и меня интересует только пара из них, в которых есть определенный шаблон (частичное совпадение — начало строки). Можно ли извлечь только столбцы и номер столбца (n-й столбец) для некоторых частичных совпадений? Надеюсь, я выразился достаточно ясно.

Языки: Предпочтительно на bash, но я также могу работать на R, в качестве альтернативы я открыт для предложений, если вы считаете, что другой язык может быть более полезным.

Спасибо!

Комментарии:

1. Взгляните на awk, с этого немного сложно начать, но, похоже, это решит ваши потребности. gnu.org/software/gawk/manual/html_node/Very-Simple.html

2. Или поищите на этом сайте awk сообщения/теги.

Ответ №1:

Awk идеально подходит для подобных вещей. Чтобы помочь вам написать сценарий, я думаю, нам нужно больше деталей. Но я предполагаю, что вы захотите использовать функцию печати awk . Чтобы распечатать n-й столбец файла «your_file», выполните:

 awk '{print $n}' your_file
 

При решении вашей проблемы вы также можете захотеть перебрать все N столбцов, что вы можете сделать с помощью:

 for i in {1..N} ;
do
    awk -v col=${i} '{print $col}' your_file ;
done