Pokud jde o konzoli, vpodstatě si vypíšu seznam řádků podle nichž by se měl soubor rozsekat.
grep -n 'Table structure for table' DB*.sql | awk -F :-- '{print $1}'
Zjistím kolik řádků soubor má:
wc -l DB*.sql | awk '{print $1}'
A začnu rozsekávat (např):
head -n $((6466-2)) *sql | tail -n $((6466-6439+1)) > tabulka.sql
Rád bych si to ale převedl do scriptu, který by tu práci dělal za mě.
Pojmenování souborů:
grep -n 'Table structure for table' DB*.sql | awk '{print $6}' | tr -d "\`"
Rád bych pochopil, jakým způsobem mohu toto převést do shellového scriptu.
Tak nějak si představuji, že bych začátek souboru, seznam řádků a poslední řádek, načetl do pole. Názvy souborů do druhého pole, a pak patrně pomocí while prováděl ořez.
Jen mi zatím není jasné jak to provést.
mělo by fungovat cca toto
RADKY=(`ls`)
bude to ale fungovat i s rourou?
tedy
RADKY=(`grep -n 'Table structure for table' DB*.sql | awk -F :-- '{print $1}'`)
a co teprv přidávání více záznamů (tohle asi fungovat nebude, že?)
RADKY=(0 `grep -n 'Table structure for table' DB*.sql | awk -F :-- '{print $1}'` `wc -l DB*.sql | awk '{print $1}'`)
zatím jsem to nezkoušel a pročítám fóra