首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用排序( grep LINUX )从列表中删除行

使用排序( grep LINUX )从列表中删除行
EN

Stack Overflow用户
提问于 2014-02-05 16:20:46
回答 1查看 207关注 0票数 1

我有一份清单看起来是:

代码语言:javascript
复制
#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年的年份,然后按人口从人口最多到人口最少的人口进行排序,但我遇到了一个问题。

代码语言:javascript
复制
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

我还能用这些东西来摆脱这条线吗?

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-05 16:23:22

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

代码语言:javascript
复制
$ grep -w 1989 file
719048, 1989,   Salt Lake
260368, 1989,   Utah
185236, 1989,   Davis
157847, 1989,   Weber

注意不同之处:

代码语言:javascript
复制
$ grep 1989 file
719048, 1989,   Salt Lake
260368, 1989,   Utah
219893, 1980,   Utah   <---- without -w, this matches
185236, 1989,   Davis
157847, 1989,   Weber

如果需要,awk也可以通过指示要检查的字段来完成这项工作:

代码语言:javascript
复制
$ awk '$2~1989' file
719048, 1989,   Salt Lake
260368, 1989,   Utah
185236, 1989,   Davis
157847, 1989,   Weber
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21582610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档