GREP REGEX LARGE FILE

蹲街弑〆低调 提交于 2019-12-13 08:05:06

问题


On a MAC how do I GREP? I have a large TXT file (200MB). The sample data is below. I want to run a GREP with a regex and be able to get ONLY the following data values in my terminal response:

00424730350000190100130JEAN DANIELE &

I want everything up to 82700. Once I have this information, I can copy it into another file for other purpose. Now I just get back tons of information.

Sample Record:

00424730350000190100130JEAN DANIELE & 82700 TINEPORK CT LAT BORAN AK 12345 3342843470224201400003980000002664300001216IWD QD0415200800004005880002281300000671IWD QM0330200500004900000001836800000431IWD QM0325199900002455270001147700000969IWD QM

sample Grep I wrote:

grep -E "^(.*?)82700" MYFILE.TXT
grep -E "^(.*?)[0-9]" MYFILE.TXT

This still doesn't work, it gives back tons of info and the 82700 can be any value...I would like it to be Any help suggestions? thank you


回答1:


For the sample data

grep -E -o "^[0-9]{23}[^0-9]+[0-9]+" MYFILE.TXT

seems to do the job:

00424730350000190100130JEAN DANIELE & 82700

using grep (BSD grep) 2.5.1-FreeBSD on Darwin 14.4.0.

Please comment, if and as this requires adjustment / further detail.



来源:https://stackoverflow.com/questions/31439827/grep-regex-large-file

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!