Tekrar Merhaba,

Demek ki çözmeye çalışmak için ısrarcı olmamak gerekiyormuş.

Gece onca zaman uğraştım ve olmadı. Şimdi ise 10 dk içinde çözüldü.

CEVAP: sed komutundan sonra -E parametresi gerekiyormuş :)

ÇÖZÜM:  cat file.sql | grep -v "^  KEY \`" | sed *-E *"s/(PRIMARY KEY
\(.*\))(.*)/\1/g"



Selamlar,
Nuri Akman


Nuri Akman <nuriak...@gmail.com>, 8 Kas 2019 Cum, 03:42 tarihinde şunu
yazdı:

> Herkese Merhaba,
>
> *Elimde şöyle bir mysqldump sql dosyası var:*
>   PRIMARY KEY (`mykey`)
>
> *,  KEY `field1` (`field`),  KEY `field2` (`field2`)*
> ) ENGINE=MyISAM AUTO_INCREMENT=92760 DEFAULT CHARSET=utf8;
>
> *Kırmızı bölümlerin silinerek şu hale gelmesini istiyorum:*
>   PRIMARY KEY (`mykey`)
> ) ENGINE=MyISAM AUTO_INCREMENT=92760 DEFAULT CHARSET=utf8;
>
> Yazdığım komut şu:
> cat file.sql|grep -v "  KEY \`"|sed "s/^(  PRIMARY KEY \(.*\)),$/\1/g"|less
>
> Uğraşmama rağmen bir türlü çözemedim...
>
>    - grep -v ile "  KEY `"  ile başlayan satıları HARİÇ tutuyorum.
>    - Ancak "  PRIMARY KEY (" diye başlayan satırın sonundaki VİRGÜLü
>    kaldıramıyorum...
>
>
> *NEDEN Mİ LAZIM?*
> Çok fazla satırı olan bir tablo bu ve bir sürü de indexli saha var. Hızlı
> restore edebilmek için indexler olmadan restore etmek istiyorum.
>
> Selamlar,
> Nuri Akman
>
_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php

Cevap