h***r 发帖数: 726 | 1 【 以下文字转载自 Unix 讨论区 】
发信人: haier (no nickname), 信区: Unix
标 题: Grep 能作这个吗?
发信站: BBS 未名空间站 (Thu May 14 17:28:28 2009), 转信
我有文本文件如下
1 200
2 199
4 198
13 190
2 180
...
可以看出已经按照第二个字段排序了。
现在我想找出 top 100 (针对第二个字段而言)
但是第一个字段的值必须大于5
我知道如果想找等于5,用grep
cat a | grep "^5\t" |head
但是对于大于5就傻眼了。
用sed行吗?怎么写script?
编一个解决不是solution, 肯定有linux/unix command吧?
thanks! |
z********0 发帖数: 9013 | 2 awk 'BEGIN{FS="\t";OFS=FS;}{if($1>5) print $0;}' |
h*******c 发帖数: 248 | 3 could be slightly simpler:
awk -F'\t' '$1*1>5'
I'm not so sure $1>5 will work or not.
【在 z********0 的大作中提到】 : awk 'BEGIN{FS="\t";OFS=FS;}{if($1>5) print $0;}'
|
s****n 发帖数: 700 | 4 这个FS="\t"; OFS=FS是啥意思
另外这个怎么体现出200行, 是不是还要pipe一个sed阿
【在 z********0 的大作中提到】 : awk 'BEGIN{FS="\t";OFS=FS;}{if($1>5) print $0;}'
|
s****n 发帖数: 700 | 5 我懂拉,是设分隔符,但是awk的默认就是空格吧。
【在 h*******c 的大作中提到】 : could be slightly simpler: : awk -F'\t' '$1*1>5' : I'm not so sure $1>5 will work or not.
|