Привет, это может быть основным вопросом для многих, но, тем не менее, ему удалось съесть пару часов моего времени.Поиск в текстовом файле в терминале
У меня есть большой файл данных как результат запуска скрипта. Файл содержит около 15 столбцов и около 100 000 строк. Я хочу выполнить поиск по файлу и в столбцах 4,5,6,7 и 8 проверить определенные значения (и строки). Я знаю, что я могу разрезать столбцы отдельно и просматривать их или использовать прямой поиск («/») в меньшей команде. Проблема здесь в втором и третьем столбцах также будет содержать значение (почти в каждой другой строке), которое я ищу. Мне нужны только значения в столбцах 4,5,6,7 и 8 для интерпретации результатов, а также мне нужно также просмотреть соседние столбцы. Как я могу это сделать? Я не хочу использовать какие-либо внешние языки, такие как R, python или perl, я ищу решения с помощью команд командной строки.
Я использую следующую команду для просмотра файла;
bzcat myfile.tsv.bz2 | column -t | less -S
Любые материалы будут оценены по достоинству.
Пример того, как выглядят данные; (Это биологические данные в определенные промежутки времени)
col1 strt end Sample1 Sample2 Sample3 Sample4 Sample5 p.val1 p.val2 . ID
ABC 1100 1200 2 2 2 2 3 NA 0.27403 PLD4
BCD 1200 1300 4 3 4 4 2 0.88831 0.37662 CYP46A1
CDE 1300 1400 2 1 4 2 1 0.77922 0.00519 CEBPE
DEF 1400 1500 6 4 4 4 4 0.88182 NA BRCA
EFG 1500 1600 2 6 8 10 3 0.00779 0.01558 BRCA
Скажите, что я хочу, чтобы просмотреть файл в целом и установить ограничения только для поиска столбцов 4,5,6,7 и 8. ~ M
Можете ли вы привести пример строк, которые должны и не должны совпадать? – Sobrique
Это абсолютно тривиально в awk, но отредактируйте свой вопрос, чтобы показать конкретный тестовый пример, включая ввод и вывод, чтобы мы правильно поняли детали. Ваш текущий пример не подходит, так как ему не хватает ожидаемого результата, и вы говорите, что хотите проверить «конкретные значения», но не говорите нам, какие значения и вы говорите, что хотите протестировать colum 8, а только показать 7 столбцов в вашем примере вход. Отправьте что-то ТОЧНО/ТОЧНО, что мы можем проверить потенциальное решение. –
Опять же вы говорите, что хотите «искать столбцы 4,5,6,7 и 8», но вы по-прежнему не скажете нам, что именно вы хотите найти в этом образце входного файла или каков ожидаемый результат. –