2016-11-09 4 views
0

У меня есть данные в file.csv:кошка из FILE.CSV с данными Grep

(...) 
0000046;0000046;04688;29;1;52.1683;20.5567 
0000046;0000046;04688;2A;1;52.1818;20.5639 
0000046;0000046;04688;3;1;52.1785;20.5629 
0000046;0000046;04688;4;1;52.1815;20.5638 
0000046;0000046;04688;5;;52.1779;20.5635 
0000046;0000046;04688;6;1;52.1813;20.5636 
0000046;0000046;04688;7;;52.1777;20.5634 
0000046;0000046;04688;8;;52.1810;20.5635 
0000046;0000046;04688;9;1;52.1775;20.5631 
0000046;0000046;05027;2;;52.1908;20.5660 
0000046;0000046;05027;4;1;52.1907;20.5649 
0000046;0000046;05527;1;1;52.1824;20.5636 
(...) 

Мне нужно извлечь строки, где третье поле совпадает с заданным значением. Я попытался

cat file.csv |grep 05027 

К сожалению, это соответствует любой строке, содержащей 05027 в любом месте. Как я могу ограничить соответствие только в третьем поле?

+0

для ввода образца показано, команда, которую вы пытались должны работали ... Вы можете копировать вставить вывод, который вы получили? – Sundeep

ответ

5

Прежде всего, вам не нужен cat для Grep, вы можете просто grep pattern file

AWK легче обрабатывать ввод данных столбца на основе.

Что вы можете попробовать это:

awk -F';' '$3=="05027"' file 
+1

Thx, отлично работать! – masterzst

+0

Вы можете поддержать ответ и принять его. –

+0

@ A.M.D: OP еще не заработал [привилегия для продвижения] (https://stackoverflow.com/help/privileges/vote-up). – user000001