info:cutlines

outre des utilitaires hand-made, il est possible de combiner grep, head, tail et sed pour découper un gros fichiers

sed -n '59182,60279p' mysqlDB.sql

ex. j'ai un gros fichier de backup MySql dont je veux extraire le table “voile”:

#on trouve la première ligne de création de la table
grep -n CREATE mysqlDB.sql | grep voil
#> 59182
#longueur en lignes du fichier
wc -l mysqlDB.sql 
#> 184580
#le début est donc en ligne 59182, reste à trouver la fin, quelque part entre la ligne 59182 et la ligne 184580, donc dans les 125398 dernières lignes
#on cherche la prochaine syntaxe de CREATE
tail -125398 mysqlDB.sql | head -10000 | grep CREATE | more
#> CREATE DATABASE /*!32312 IF NOT EXISTS*/ docman;
#on cherche la ligne correspondante
grep -n "CREATE DATABASE.*docman" mysqlDB.sql
#> 60284:CREATE DATABASE /*!32312 IF NOT EXISTS*/ docman;
#on regarde la fin à la main
#et finalement la commande magique avec sed
sed -n '59182,60279p' mysqlDB.sql  > voile.sql
#et le tour est joué
  • info/cutlines.txt
  • Dernière modification : 2023/03/13 13:56
  • de radeff