2016-11-04 2 views
-1

Я хочу вытащить все строки из текстового файла в linux, которые содержат определенный номер (в данном случае 9913) в определенном столбце (столбец 4) , Это файл с разделителями табуляции, поэтому я называю этот столбец, хотя я не уверен, что это так.Линейные строки, содержащие строку в определенном столбце в новом файле

В некоторых случаях в столбце 4 имеется только одно число, но в других строках в этом столбце есть несколько номеров (например, 9913; 4444; 5555). Я хотел бы получить любые строки, для которых число 9913 появляется в 4-м столбце (независимо от того, является ли это единственным номером или в списке). Как поместить все строки, которые содержат номер 9913 в столбце 4, и поместить их в свой собственный файл?

Вот пример того, что я пробовал:

кошку file.t | Grep 9913> newFile.txt

результат представляет собой смесь из следующих действий:

CDR1as CDR1as ENST00000003100.8 9913 AAA-GGCAGCAAGGGACUAAAA (файлы, которые я хочу)

CDR1as CDR1as ENST00000399139.1 9606 GUCCCCA .. .............. (файл, например, я не хочу)

Я не получаю никаких результатов при вызове определенного столбца. Показывается помощником ниже, код не распознает столбцы, которые я думаю, и я получаю пустые файлы при использовании awk.

AWK '$ 4 == "9913"' ​​file.txt> newfile.txt

не дают мне передачу данных в новый файл.

Благодаря

+1

Показать, что вы пробовали до сих пор. –

+0

Дублируемая запись - http://stackoverflow.com/questions/2957094/only-print-lines-where-the-second-field-matches-some-criteria –

+0

Вы хотите второй случай (например, 9913; 4444; 5555), который также будет выбран? Также каков ваш полевой разделитель? – karakfa

ответ

0

Это один из способов сделать это

awk '$4 == "9913" {print $0}' file.txt > newfile.txt 

или просто

awk '$4 == "9913"' file.txt > newfile.txt 
+0

Обратите внимание, что '{print $ 0}' здесь избыточно, так как это поведение 'awk' по умолчанию. Так что 'awk '$ 4 ==" 9913 "' file' достаточно. – fedorqui

+0

Обновлен мой ответ. спасибо, что указал – usha

+0

Спасибо. Я только что редактировал выше. По какой-то причине это не работает для моих данных, хотя я видел это и в других сообщениях. Я не получаю никаких строк, переданных в новый файл, когда я использую awk – ngross13

Смежные вопросы