我需要根據大文件中使用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