我需要根据大文件中使用shell脚本最后一次出现的模式将较大的文件拆分成更小的块。例如。在shell脚本中将大文件拆分成小块在
Sample.txt的
NORTH EAST|0004|00001|Fost|Weaather|<br/>
NORTH EAST|0004|00001|Fost|Weaather|<br/>
SOUTH|0003|00003|Haet|Summer|<br/>
SOUTH|0003|00003|Haet|Summer|<br/>
SOUTH|0003|00003|Haet|Summer|<br/>
EAST|0007|00016|uytr|kert|<br/>
EAST|0007|00016|uytr|kert|<br/>
WEST|0002|00112|WERT|fersg|<br/>
WEST|0002|00112|WERT|fersg|<br/>
SOUTHWEST|3456|01134|GDFSG|EWRER|<br/>
“模式1 = 00003”将要搜索的输出文件必须包含sample_00003.txt(文件将基于要在其上被搜索图案的第三字段排序)
NORTH EAST|0004|00001|Fost|Weaather|<br/>
NORTH EAST|0004|00001|Fost|Weaather|<br/>
SOUTH|0003|00003|Haet|Summer|<br/>
SOUTH|0003|00003|Haet|Summer|<br/>
SOUTH|0003|00003|Haet|Summer|<br/>
“Pattren 2 = 00112” 将要搜索的输出文件必须包含sample_00112.txt
EAST|0007|00016|uytr|kert|<br/>
EAST|0007|00016|uytr|kert|<br/>
WEST|0002|00112|WERT|fersg|<br/>
WEST|0002|00112|WERT|fersg|<br/>
使用
awk -F'|' -v 'pattern="00003"' '$3~pattern big_file' > smallfile
和grep命令,但它是非常耗时,因为文件是300 + MB的大小。
你所说的“最后一次出现的意思是的模式“? – codeforester
模式在文件中匹配的最后时间。 I.e模式“00003”在第三个字段中匹配sample.txt文件的第5行。所以进程想把它分割出来,直到第5行成为一个单独的文件。 – Katchy
将来,请使用突出显示的文本编辑框左上方的格式化工具将其格式化为代码/数据/输出。 祝你好运。 – shellter