découper un fichier par lignes
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é