我有一个大文本文件(> 4 gb),它是固定宽度格式的。我想根据特定列中的内容获取该文件的子集。最快的方法是什么?
例如,文件将具有以下格式:
Column width 1 = 3
Column width 2 = 3
Column width 3 = 2
Column width 4 = 2
Column width 5 = 1
Column width 6 = 2
Column width 7 = 2
Column width 8 = 2
Colwidth 9 = 2
该文件的一行可能如下所示:
150-9912 17 7 1 0 0
如果我想根据第2列的值进行搜索(例如第2列的值== -99),那么最有效的方法是什么?我有多个文件~4GB大小,每个文件中有近1000万行。感谢帮助!
答案 0 :(得分:2)
使用GNU awk:
awk 'BEGIN{FIELDWIDTHS="3 3 2 2 1 2 2 2 2"} $2==-99'
上述内容将帮助您顺利完成。