使用排序、grep-LINUX从列表中删除行

使用排序、grep-LINUX从列表中删除行,linux,sorting,grep,gnu,Linux,Sorting,Grep,Gnu,我有一个如下列表: #Population, Year, County 3900, 1969, Beaver 3798, 1970, Beaver 3830, 1971, Beaver 3864, 1972, Beaver 3993, 1973, Beaver 3976, 1974, Beaver 4064, 1975, Beaver 4074, 1976, Beaver 4064, 1977, Beaver 41

我有一个如下列表:

#Population,    Year,   County
3900,   1969,   Beaver
3798,   1970,   Beaver
3830,   1971,   Beaver
3864,   1972,   Beaver
3993,   1973,   Beaver
3976,   1974,   Beaver
4064,   1975,   Beaver
4074,   1976,   Beaver
4064,   1977,   Beaver
4194,   1978,   Beaver
4240,   1979,   Beaver
这个列表要长得多,但我没有包括其他的。我使用grep过滤列表,只得到1989年的数据,然后按人口从人口最多到人口最少的顺序对其进行排序,但我遇到了一个问题

719048, 1989,   Salt Lake
260368, 1989,   Utah
219893, 1980,   Utah
185236, 1989,   Davis
157847, 1989,   Weber
如您所见,第三行是1980年,之所以显示它,是因为人口219893,其中的数字1989。我如何过滤掉这条线

我使用了这个命令:
grep“1989”犹他州.txt | sort-nk1,1-r

这些是我可以用来摆脱那条线的其他东西吗


谢谢你的帮助

您可能需要在
grep
中使用
-w
。这样,它将只匹配整个单词:

$ grep -w 1989 file
719048, 1989,   Salt Lake
260368, 1989,   Utah
185236, 1989,   Davis
157847, 1989,   Weber
请注意区别:

$ grep 1989 file
719048, 1989,   Salt Lake
260368, 1989,   Utah
219893, 1980,   Utah   <---- without -w, this matches
185236, 1989,   Davis
157847, 1989,   Weber

您可能需要在
grep
中使用
-w
。这样,它将只匹配整个单词:

$ grep -w 1989 file
719048, 1989,   Salt Lake
260368, 1989,   Utah
185236, 1989,   Davis
157847, 1989,   Weber
请注意区别:

$ grep 1989 file
719048, 1989,   Salt Lake
260368, 1989,   Utah
219893, 1980,   Utah   <---- without -w, this matches
185236, 1989,   Davis
157847, 1989,   Weber
很高兴读到:)记住,如果你的问题解决了,你可以接受答案。很高兴读到:)记住,如果你的问题解决了,你可以接受答案。