我有一份清单看起来是:
#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" utah.txt | sort -nk1,1 -r
我还能用这些东西来摆脱这条线吗?
谢谢你的帮助。
发布于 2014-02-05 16:23:22
您可能需要在您的-w中使用grep。这样,它将只匹配整个词:
$ 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如果需要,awk也可以通过指示要检查的字段来完成这项工作:
$ awk '$2~1989' file
719048, 1989, Salt Lake
260368, 1989, Utah
185236, 1989, Davis
157847, 1989, Weberhttps://stackoverflow.com/questions/21582610
复制相似问题