在文本文件中搜索编号,并指定范围和长度Grep

时间:2018-11-05 23:22:48

标签: linux terminal grep cat

所以我一直试图永远解决这个问题,无法解决。

目标是过滤文本文件中的所有行,并且仅显示超过4850点且最大为700,000的行。

我目前最好的命令是:

grep -E '48 [1-9] {2}'“文件名” >> 文件

这只会检索点48__的帐户以及所有无用的东西,例如包含此组合的客户用户名,例如loggz314895。

此方法将永久使用,因为范围可以从4850-700K的点开始,一次执行一次将永久使用并过滤掉包含的垃圾。

我感觉它将会是一个简单的命令,但是我无法设法将它包裹住。如果其中一位向导可以帮助我,我将不胜感激。如果您也可以破坏命令的每个部分所做的工作,那将非常有帮助。

再次感谢。

这是一个示例:(出于隐私原因进行了编辑)。

loggz@loggz1.com,用户ID 9826135802015973221点数1685,新loggz
时间111.111.111

loggz@loggz1.com,用户ID 9826135802015973221点数1685,新loggz
时间111.111.111

loggz@loggz1.com,用户ID 9826135802015973221点数1685,新loggz
时间111.111.111

每个用户和时间之间都没有空白行。

没有换行符的预期输出:

loggz@loggz1.com,积分1685,

loggz@loggz1.com,积分1685,

loggz@loggz1.com,积分1685,

1 个答案:

答案 0 :(得分:1)

要过滤列并进行比较,请使用awk

awk '4850 <= $5 && $5 <= 700000'

@edit

awk '{ if (4850 <= $5 && $5 <= 700000) { print $1,$5; } }`