从大文本文件Batch中提取所有字符串

时间:2014-02-04 14:52:31

标签: batch-file cmd extract text-extraction

我有SQl转储文件34 GB

CREATE TABLE `table1`
CREATE TABLE `table6`
CREATE TABLE `table44fff`
CREATE TABLE `tablecvd`

我需要快速提取所有表名,我认为必须是

FOR /F "tokens=* delims=" %%A IN ('db1.sql ^| FIND "CREATE TABLE `"') DO ECHO %%A > output.txt

但我得到的错误是我的文件太大了

我需要在输出文件中获取表名列表

table1
table6
table44fff
tablecvd
....

1 个答案:

答案 0 :(得分:1)

没有在一个大的文件上试过它,但是如下:

FOR /F "tokens=2 delims=`" %%A IN (
    'findstr "CREATE TABLE" db1.sql'
) DO (
    ECHO %%A >> output.txt
)

根据请求,在Perl中,可以通过以下方式完成:

#!/usr/bin/perl
use v5.14;

open(IN, "<", "db1.sql");
open(OUT, ">>", "output.txt");

while (<IN>) {
    if(/^CREATE TABLE `(.*)`/){
        say OUT $1;
    } 
}

close(IN);
close(OUT);