来自file.csv的cat与grep数据

时间:2016-11-09 09:55:43

标签: bash awk sed grep cat

我有file.csv中的数据:

(...)
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的行。如何限制仅匹配第三个字段?

1 个答案:

答案 0 :(得分:5)

首先,你不需要cat来获取grep,你可以grep pattern file

awk更容易处理基于列的数据输入。

你可以尝试的是:

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