grep % 浏览文件

grep % 浏览文件

我正在对一个非常大的 mysql 文件运行导入作业,该文件大部分没有换行符。

使用 mysql 进程列表,我能够找到当前插入记录的 ID。

我想要做的是找出文件中出现该 ID 的字符,这样我就能知道导入作业的完成百分比。

grep -n 没有帮助,因为行号没有用,因为插入之间没有换行符。

我可以使用 grep (或其他命令)来找出字符串在文件中按字符排列的位置吗?

答案1

grep您可以用换行符和wc -l结果替换所有空格(或分号或...) 。

sed -e 's/ /\n/g/' input > result
wc -l < result
grep -n "$id" result

如果你不想创建额外的文件,可以调用 Perl 来解决问题:

perl -e '$/ = " "; /ID/ and print "[$.]" while <>; print "$.\n"' input

应该输出类似的内容[145]300,这意味着 ID 出现在 300 条记录中的第 145 条记录中。 $/是记录分隔符,$.是记录计数器。

相关内容