所以我一直在努力解决这个问题,但始终无法解决。
目的是过滤文本文件中的所有行,只显示超过4850点且最大700,000的行。
我目前最好的命令是:
grep -E '48[1-9]{2}' "文件名">> 文件
这只会检索点数为 48__ 的帐户以及所有无用的内容,例如包含此组合的客户用户名,例如 loggz314895。
这种方法将永远耗时,因为范围可以从 4850 - 700K 点,一次做一个将永远耗时,并过滤掉包含的垃圾。
我觉得这将是一个简单的命令,但我无法理解它。如果你们中的一位巫师能帮助我,我将不胜感激。如果您也能打破命令的每个部分所做的事情,那将非常有帮助。
再次感谢。
这是一个示例:(出于隐私原因进行了编辑)。
loggz@loggz1.com,userid 9826135802015973221 积分1685,新loggz
时间 111.111.111
loggz@loggz1.com,userid 9826135802015973221 积分1685,新loggz
时间 111.111.111
loggz@loggz1.com,userid 9826135802015973221 积分1685,新loggz
时间 111.111.111
没有每个用户和时间之间的空行。
没有换行符的预期输出:
loggz@loggz1.com,积分 1685,
loggz@loggz1.com,积分 1685,
loggz@loggz1.com,积分 1685,
最佳答案
要过滤列并进行比较,请使用 awk
awk '4850 <= $5 && $5 <= 700000'
@编辑
awk '{ if (4850 <= $5 && $5 <= 700000) { print $1,$5; } }`
关于linux - 在文本文件文件中搜索数字并指定范围和长度 Grep,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53163745/