#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